发现自己真的不行

事情缘由,帮朋友写一题,然后发现自己水平真的不够
在这里插入图片描述

#include <stdio.h>
#include <string.h>
char s[100];//输入文本。
char word[100][100];
int len;//计算字母长度。
int r, h, maxlen;
int local;

//统计一个文本的单词个数并输出最长单词长度和位置,每个单词之间可有多个空格或其它符号
int main() 
{
    
    
	char s[100];//输入文本。
	char word[100][100];
	int len;//计算字母长度。
	int r = 0, h = 0, maxlen = 0;
	gets(s);
	len = strlen(s);
	for (int i = 0; i < len; i++) 
	{
    
    
		if (s[i] != ' ' && s[i] != '.' && s[i] != ',' && s[i] != '!' && s[i] != '?') 
		{
    
     //当遇到字母的时候。
			word[r][h++] = s[i];//存进二维数组,通过分行,每行一个单词
		}
		 else 
		{
    
    
			word[r][h] = '\0';//当那个单词结束后。
			r++;//当那个单词结束后,换行。
			h = 0;//从头开始输入单词。
			while (s[i + 1] == ' ' || s[i + 1] == '.' || s[i + 1] == ',' || s[i + 1] == '!' || s[i + 1] == '?')
				i++;//遇到标点符号的时候,继续走。
		}
	}
	for (int i = 0; i < r + 1; i++) 
	{
    
    
		if (strlen(word[i]) > maxlen) 
		{
    
    
			maxlen = strlen(word[i]);
			local = i;//记录最长的那个。
		}
	}
	printf("单词个数:%d,最长的词语:%s", r + 1, word[local]);
	return 0;
}

猜你喜欢

转载自blog.csdn.net/weixin_52045928/article/details/116139616