gpt4 book ai didi

C: scanf 字符到数组中

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

刚开始 C 并想知道如何将未知数量的字符输入数组,当结束符号为“~”时

#include <stdio.h>
#define N (499)

int main()
{
int count;
int i;
char input;
char text[N];


printf("Text:\n");
scanf("%c", &input);

while (input != '~')
{
for(i = 0; i < N; i++)
{
text[i] = input;
scanf("%c", &input);
count++;
}
}

return 0;
}

但我不断陷入无限循环

谢谢!

最佳答案

删除 while 循环并将 for 循环替换为:

 for(i = 0; i < N && input != '~'; i++)

此外,最好使用终止空字符来结束字符串,以便程序知道字符串在哪里结束。所以在for循环之后添加:

 text[i] = '\0';

或者,您可以使用一些 scanf 正则表达式来避免循环。例如:

        scanf("%498[^~]", text);

将读取数组文本中的498个字符,直到遇到~符号。它还会将终止字符放入字符串中。

(您通常不应该使用scanf,但对于初学者来说已经足够了)

编辑:感谢某个随机的人,“amis”或smth(请告诉你的名字)替换了一个错误。

关于C: scanf 字符到数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25503643/

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