gpt4 book ai didi

c - 为什么 printf 不只打印 ini 字符串?

转载 作者:行者123 更新时间:2023-11-30 18:21:03 25 4
gpt4 key购买 nike

我需要将“ini”字符串复制到“final”字符串,反转字符顺序,但是当我打印字符串“ini”时,它似乎将“ini”和“final”一起打印。

语言:C

#include <stdio.h>

void main(){
char ini[10]={'a','b','c','d','e','f','g','h','i','j'};
char final[10];

for (int i = 0; i < 10 ; i++) {
final[i]=ini[10-1-i];
}
printf("%s\n\n",ini);
printf("%s",final);
}

我的输出是:

abcdefghijjihgfedcba

jihgfedcba

但应该是这样的:

abcdefghij

jihgfedcba

最佳答案

字符串需要空终止符。

#include <stdio.h>

void main(){
char ini[11]={'a','b','c','d','e','f','g','h','i','j', 0};
char final[11];

for (int i = 0; i < 10 ; i++) {
final[i]=ini[10-1-i];
}
final[10] = 0;
printf("%s\n\n",ini);
printf("%s",final);
}

如果您使用字符串作为初始值设定项,它会自动包含终止符。以下是等效的:

char ini[] = "abcdefghij";

关于c - 为什么 printf 不只打印 ini 字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58736158/

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