gpt4 book ai didi

c - 检索/比较文件中的字符串与用户文本

转载 作者:太空宇宙 更新时间:2023-11-04 07:18:42 27 4
gpt4 key购买 nike

我是 C 的新手,我想编写一个程序来检查用户输入的单词是否合法。我已经在 stackoverflow 上搜索了建议,但很多都是针对特定情况的。请在我被激怒之前,我知道这个语法不正确,但正在寻找一些关于如何修复它的建议。我的主要问题是如何告诉程序检查下一行(在“\0”之后)。也许 while 条件不是告诉 C 检查直到没有更多行存在的最佳方式。在下面的代码中,我有用于测试的“userword”示例比较字符串,但最终这将根据用户输入而变化。

#include <stdio.h>
#include <string.h>

int main (void)
{
FILE *fp;
fp = fopen("/usr/share/dict/words", "r");
char line[50];
while(fgets(line,50,fp) != NULL)
{
if(!strcpy(line,"userword"))
{
printf("Word exists\n");
return 0;
}
}
printf("Word not found, try again.\n");
return 0;
}

最佳答案

strcpy() 复制一个字符串。您应该使用比较两个字符串的 strcmp()

其次,当您从/usr/share/dict/words 读取该行时,末尾有一个换行符。您要么需要删除换行符(在 while 之后和 if 之前添加):

line[strlen(line) - 1] = '\0';

或者与userword\n比较。

关于c - 检索/比较文件中的字符串与用户文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22716920/

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