gpt4 book ai didi

c - 如何使用 fgetc() 仅捕获字母并将输入存储到数组中

转载 作者:行者123 更新时间:2023-11-30 15:27:17 26 4
gpt4 key购买 nike

我正在尝试编写一个索引程序,它将从用户那里获取输入并将其存储到一个数组中,然后继续计算单词的出现次数。

用户输入:hello@#world I,I,I am@#!stuck201

hello 1 出现 1 次

世界 1 出现 1 次

我出现过3次

am出现1次

卡住发生1次

因此,正如您所看到的,它会将包含由任何内容分隔的字母的任何内容计为一个单词。

(我对如何检查输入中除字母以外的任何内容感到困惑,我正在考虑使用 ASCII 代码,但必须有更好的方法,如果你能为我设置正确的方向,非常感谢。)

在开始该程序之前,我试图让 I/O 正常工作,但遇到了困难。实际的程序将要求我使用二维数组,但如果您能帮助我处理这段代码,我将不胜感激。

#include <stdio.h>

int main()
{

char array[64];
int i=0, j, input;

printf("Please enter an input:");

input==fgetc(stdin);
while(input != " ")
{
array[i]==input;
i++;
input==fgetc(stdin);
}

for(j=0;j<10;j++)
{

printf("You entered:%c",array[j]);


}
}

编译后,它给我一个警告“12:14警告:指针和整数之间的比较”

此代码的输出:::

请输入一个输入:(我输入输入)ehehasd world hello(输入)

然后它就位于空白光标处,我必须使用 CTRL C 退出

我希望这段代码只获取由空格分隔的用户输入,将其存储到数组中,然后打印出用户输入的内容。我做错了什么?

最佳答案

检查isalpha ,它有一些关于什么是信件的细则,但它可能适合您的情况。

如果您不想自己执行循环,另一种方法是使用正则表达式。制作一个仅返回字母序列的正则表达式相当容易。

关于c - 如何使用 fgetc() 仅捕获字母并将输入存储到数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27084127/

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