以下代码有什么问题?
我检查了程序,对于长度小于16个字符的字符串,程序运行正常。而对于长度大于16个字符的字符串,在末尾会返回未定义的字符:
然而,如果我用 "" 初始化
#define N 30
int main() {
char str[N], new_str[N];
int i,len;
printf("Please enter 20 letters. \n");
scanf("%s", str);
len = strlen(str);
printf("The length of str is %d ", len);
for (i=0; i< len; i++)
new_str[i]=str[len-1-i];
printf("The result is: %s\n", new_str);
return 1;
}
我检查了程序,对于长度小于16个字符的字符串,程序运行正常。而对于长度大于16个字符的字符串,在末尾会返回未定义的字符:
Please enter 20 letters.
1234567891111111
The result is: 1111111987654321q=V?.
然而,如果我用 "" 初始化
str, new_str
,问题就解决了。我仍然想知道是什么导致了这个问题。