其他分享
首页 > 其他分享> > 15、最长单词。2020-11

15、最长单词。2020-11

作者:互联网

 

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;
}

 

标签:11,15,findmax,int,字母,单词,2020,&&,include
来源: https://www.cnblogs.com/WG11/p/15652057.html