2020.8. 链接 读取文件,每行不超过100个字符,输出每行中字母最多的单词的字母数
#include "stdio.h" #include "stdlib.h" /* PS: 1️⃣定义求最大长度findmax() 2️⃣进行循环判断是否为字母 3️⃣End Of File(循环整个文件内容) 4️⃣对findmax函数进行调用 5️⃣不要忘记关闭文件 */ int findword(char c[]) //1️⃣ { //找到指定长度的字符并输出 int i = 0; int max = 0; int flag = 0; int k = 0; int zui = 0; // 最长单词的下标 //for(k=0;k<j-1;k++) //2️⃣ for(k = 0; c[k]!= '\n'; k++) //2️⃣ { int chu = 0; while((c[k] >= 'A') &&(c[k] <= 'Z') || (c[k] >= 'a') &&(c[k] <= 'z')) { if(i == 0) chu = k; //记录单词的第一个字母 flag = 1; i++; k++; } if(flag == 1) // 如果是单词进行如下操作 { if(max < i) //是否是最长单词 { max = i; //记录长度 zui = chu; //记录下标 } flag = 0; i = 0; } } for(i = 0; i < max; i++) { printf("%c", c[zui + i]); } return max; } int main() { FILE *p1; char ch, c[100]; int j = 0; p1 = fopen("a.txt", "a + "); c = "lin xiao han zhu !!!\n"; int max = findword(c); // 用c测试函数 /* while((ch=fgetc(p1))!=EOF)//3️⃣ { printf("fread -------\n"); c[j] = ch; j++; if(ch == '\n') { int max = findmax(c, j); //4️⃣ //cout<<max<<endl; printf(" % d", max); j = 0; //下一行 } } printf("fclose -------"); fclose(p1); //5️⃣ */ printf(" %d", max); return 0; }