gpt4 book ai didi

c - 打印字符数组

转载 作者:行者123 更新时间:2023-11-30 16:46:28 26 4
gpt4 key购买 nike

我想知道我的代码有什么问题。我通常使用 scanf 但正在尝试掌握 fgets 的窍门。但是,当我尝试打印一个 char 数组时,其中数组的每个元素都位于单独的行上,但即使我将数组的限制定义为任意高的数字,它也只有十一行的限制。我是一名初学者程序员,所以请尽量简单。

#include <stdio.h> 
#define max_line 4096
int main(void) {
char str[max_line];
printf("Enter string: ");
fgets(str, max_line, stdin);
for (int i=0;i <max_line && i!='\n'; i++) {
printf("%c\n", str[i]);
}
return 0;
}

我想要得到这样的结果。

Enter string: Hello 
H
e
l
l
o

但结果却截然不同

Enter string: Hello 
H
e
l
l
o
/n //Sorry, I don't know how to add new lines in stackoverflow, but I think you get the idea.
/n
/n
/n
/n

最佳答案

您需要检查 str[i]'\n' 是否不等于,而不是检查 i!= '\n'。正如 @BLUEPIXY 指出的,这意味着 i != 10,即 '\n' 等于 ASCII 中的 10代码。

因此将条件更改为:

for (int i=0;i <max_line && str[i]!='\n'; i++) {

关于c - 打印字符数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43717026/

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