我的文本文件中有以下数据
we are studying hard
we can go out for vacation
I can have fun!!
I can have fun!!
fun!
所需输出
#1 we 2
#2 are 1
#3 studying 1
#4 hard 1
#5 can 3
#6 go 1
#7 out 1
#8 for 1
#9 vacation 1
#10 I 2
#11 have 2
#12 fun 3
我必须显示每个单词及其重复次数。
我尝试了以下代码,
#include <stdio.h>
#include <stdlib.h>
#define MAX_LEN 1000
int main(int argc, char *argv[]) {
char data[MAX_LEN];
if (argc < 2) {
printf("Usage: %s filename\n", argv[0]);
return 1;
}
char *filename = argv[1];
FILE *file = fopen(filename, "r");
if (file == NULL) {
perror("Error opening file");
return(1);
}
int line = 0;
char c;
while ((c = fgetc(file)) != EOF)
{
if (c == ' ' || c == '\n')
{
printf("\n");
}
else
{
line++;
printf("%c", c);
}
}
for (int i = 0; i < line; i++)
printf("%s", data[i]);
fclose(file);
return 0;
}
上面的代码正在打印值,但我无法找到计数。任何人都可以建议我更正我的代码吗?我是编码新手,但渴望学习。谢谢!!
我希望找到文件中重复字符的计数。
存在多个问题:
c
应定义为 int
,以便测试 while ((c = fgetc(file)) != EOF)
可靠运行line
,但绝不将任何内容存储到数组中 data
printf("%s", data[i]);
传递 char
,其中 printf
需要一个字符串指针(char *
指向以 null 结尾的数组)。您应该按照以下步骤操作:
int
1
。在文件末尾,输出计数和单词数