gpt4 book ai didi

c - C中的反转字符串

转载 作者:太空狗 更新时间:2023-10-29 15:43:21 24 4
gpt4 key购买 nike

下面的代码有什么问题?

#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 个字符以下的字符串,程序都没有问题,并且在最后返回了未定义的字符:

  Please enter 20 letters.
1234567891111111

The result is: 1111111987654321q=V?.

但是,如果我用 ""初始化 str, new_str 问题就解决了。我仍然想知道是什么导致了这个问题。

最佳答案

您需要添加空终止符:

new_str[len] = '\0';

否则,最后一个字符后有垃圾,所以字符串没有结束

关于c - C中的反转字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11538381/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com