我写了一些如下的C程序。
#include <stdio.h>
#include <string.h>
main() {
char *s1 = "hello world!" ;
char *sto = "it's original string" ;
//copy
strcpy( sto, s1 ) ;
printf( "%s", sto ) ;
}
是的,有很多文章涉及这个主题。我读了每一篇文章。所以我发现没有初始化变量会导致错误。
但是,我认为这段代码没有错误,因为
sto
变量已经被初始化为“it's ~~ bla bla”的值。我是关于c的新人,请对我好一点。谢谢。
最佳答案
在C语言中,您必须管理存储字符串的内存。
字符串文字(例如"This is a string"
)存储在只读存储器中。
您无法更改其内容。
但是,您可以编写如下内容:
main()
{
char *s1 = "hello world!" ;
// This will allocate 100 bytes on the stack. You can use it up until the function returns.
char sto[100] = "it's original string" ;
//copy
strcpy( sto, s1 ) ;
printf( "%s", sto ) ;
}