【C】编写一个C函数,输入一组字符串,求字符串中最长单词的长度 + 打印最长单词。

版本一:

输入英文句子(字符串),求句子中最长英文单词的长度

#include<stdio.h>
#define MAX 255
int main()
{
    
    
	char str[MAX]; //设置数组能存放最大的空间
	int i = 0;
	int j = 0;
	int max = 0;
	
	gets(str); //输入字符串 例如: I love China!
	
	while(str[i] != '\0' && str[j] != '\0' ){
    
    
		while(str[i] == ' ') //定位单词首字母
		i++;	
		
		j = i; //把j定位到i的位置,准备扫描str[i]后面的字母
		
		while(str[j] != ' ' && str[j] != '\0')  //定位单词尾字母的后一位
		j++;
		
		if(max < j - i)  //如果单词长度比前面的都大,则记录
			max = j - i;
			
		i = j; //把i定位到j的位置,准备扫描str[j]后面的空格
	}

	printf("max = %d\n",max);
		
	return 0;
 } 

输出结果为:
在这里插入图片描述

版本二:

求句子中最长英文单词的长度 + 打印最长单词

#include<stdio.h>
#define MAX 255
int main()
{
    
    
	char str[MAX];		//设置数组能存放最大的空间
	char str_1[MAX];		//用于存储最长单词  
	int i = 0;
	int j = 0;
	int k = 0;
	int max = 0;
	
	gets(str);			//输入字符串 例如: I love China!
	
	while(str[i] != '\0' && str[j] != '\0' ){
    
    
		while(str[i] == ' ')			//定位单词首字母
		i++;	
		
		j = i;			//把j定位到i的位置,准备扫描str[i]后面的字母
		
		while(str[j] != ' ' && str[j] != '\0')			//定位单词尾字母的后一位
		j++;
		
		if(max < j - i){
    
     			//如果单词长度比前面的都大,则记录
			max = j - i;
			
			for( ; i <= j ; ++i){
    
    			//把最长单词保存下来 
				str_1[k++] = str[i];
			}
			
			str_1[k] = '\0';
			k = 0;
			}
			
		i = j;			//把i定位到j的位置,准备扫描str[j]后面的空格
	}
	printf("\n");
	printf("输出:\n");
	printf("max = %d\n",max);
	printf("%s\n",str_1);
		
	return 0;
 } 

输出结果:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_50019298/article/details/115367563