gpt4 book ai didi

c - fgets 有更多的字符,它应该有

转载 作者:行者123 更新时间:2023-11-30 17:07:43 24 4
gpt4 key购买 nike

嗨,我正在尝试使用 fgets 从 stdin 获取字符串并将其存储在输入中,然后它应该使用 strcmp 方法与单词数组(从文本文件中取出的超过 50000 个单词)进行比较,但是我由于某种原因永远无法让它们进行比较,直到我发现为什么这是我的代码。

char[] text;// <----------array is already full and working at this point I just 
char input[24];// thought I'd include this for the memcpy
char check[24]="happ";
fgets(input,24, stdin);

for(int i=0; i < 50000; i++){
memcpy(check, text[i], strlen(input));// this is supposed to get a substring


if(strcmp(check, input) == 0){// this is supposed to auto complete
printf("%s",text[i]);}// say for example 4 letters are inputted the entire
//array will be checked if they have the same letters then that word will be printed


printf("\n %lu %s\n",strlen(check),check);
printf("\n %lu %s\n",strlen(input),input);

如果插入“happ”,它应该打印出数组中的最后一个字母及其 大小应该是 4 但标准输入“5 happ”我认为可能有一个\n在输入的末尾,所以我使用了一个临时值并获得了输入的子字符串的长度strlen(input)-1 但我得到的只是“6 happ\377” 请帮助我尝试研究它,但我不明白它出了什么问题,所以我不知道要研究什么

最佳答案

我终于找到了答案,这是一个简单的修复

int cch=strlen(input-1);
if (cch > 1 && input[cch-1] == '\n')
input[cch-1] = '\0';

关于c - fgets 有更多的字符,它应该有,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33984560/

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