gpt4 book ai didi

c - 用 C 打印文件中的所有重复单词

转载 作者:行者123 更新时间:2023-11-30 18:38:50 25 4
gpt4 key购买 nike

我应该做什么才能只打印文件中的重复单词。我是 C 语言的初学者。

这是我的代码:

#include <stdio.h>
#define max 100
main(){

FILE *fpointer;
char ch[max],str[max][max];
int i = 0,j = 0,count = 0;
int a,b;
fpointer = fopen("1.txt","r");
if(fpointer == NULL){
printf("Error!");
return 0;
}
while(fscanf(fpointer,"%s",ch)!=EOF){
strcat(str[i++],ch);
strcat(str[i++]," ");
count++;
}
for(a=0;a<count*2;a=a+2){
for(b=0;b<count*2;b=b+2){
if(strcmp(str[a],str[b])==0){
printf("%s\n",str[b]);
}
}
}
fclose(fpointer);
return 0;
}

输入的示例是“在黑暗的星星中闪耀小星星”这个程序的输出是“在黑暗的星星中闪耀闪耀的星星”。请帮我打印只有重复的单词。交易

最佳答案

在内部循环中,不要从列表的开头开始,而是在当前元素之后开始一个元素。这样,您就不会将一个元素与其自身进行比较,也不会将任何两个元素进行两次比较。

for(a=0;a<count*2;a=a+2){
for(b=a+2;b<count*2;b=b+2){ // b=a+2 instead of b=0
if(strcmp(str[a],str[b])==0){
printf("%s\n",str[b]);
}
}
}

输出:

shine
star

关于c - 用 C 打印文件中的所有重复单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32332080/

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