我在CodeGuru上读了一个标题为“ strlen vs sizeof”的线程,其中一个答复指出“ char
用字符串文字初始化数组仍然是[sic]不好的做法”。
这是真的吗?还是他的观点(尽管是“精英成员”)?
这是原始问题:
#include <stdio.h>
#include<string.h>
main()
{
char string[] = "october";
strcpy(string, "september");
printf("the size of %s is %d and the length is %d\n\n", string, sizeof(string), strlen(string));
return 0;
}
对。大小应为长度加1是?
这是输出
the size of september is 8 and the length is 9
大小一定是10。就像在计算strcpy改变字符串长度之前计算它的sizeof字符串一样。
我的语法有问题吗?
这是答复:
无论如何,用字符串文字初始化char数组都是不好的做法。因此,请始终执行以下任一操作:
const char string1[] = "october";
char string2[20]; strcpy(string2, "september");