您好我尝试使用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);
如果&#34;开心&#34;插入它应该打印出数组中的最后一个字母及其 大小应该是4但是stdin&#34; 5开心&#34;我以为可能会有\ n 在输入结束时所以我使用了一个temp并获得了输入的子串 strlen(输入)-1但我得到的只是&#34; 6开心\ 377&#34;请帮助我尝试研究它,但我不明白它有什么问题,所以我不知道该研究什么
答案 0 :(得分:0)
我能够找到答案,最后这是一个简单的修复
int cch=strlen(input-1);
if (cch > 1 && input[cch-1] == '\n')
input[cch-1] = '\0';