1219 - C语言8.22

编写一个函数,输入一行字符,将此字符串中最长的单词输出。

题目输入

一行字符,只包含英文字符和空格。保证字符串的长度不超过100。

题目输出

输出读入的最长单词。

请注意行尾输出换行。

输入/输出样例

题目输入

This is not a program

题目输出

program

C语言解答

#include<stdio.h>
#include<string.h>
char* mymax(char a[]);

int main()
{
	char a[100];
	gets(a);
	printf("%s\n",mymax(a));
	return 0;
}


char* mymax(char a[])
{
    char* p=a;//run
	char* q=a;//max
	char* k=a;//temp

	int count1 = 0;//max
	int count2 = 0;//temp

	while(*p)
	{

		while(*p==' ')
		{
			*p='\0';
			p++;
		}
		k = p;

		while(*p!=' '&&*p!='\0')
		{
	
			p++;
			count2++;
		}

		if(count1<count2)
		{
		
			q = k;
			count1 = count2;
			count2 = 0;
		}
	}
		    
return q;

}

C++解答

#include <stdio.h>
#include <string.h>
int main() {
	void calc(char str[], char longest[]);
	char str[101], longest[101];
	gets(str);
	calc(str, longest);
	puts(longest);
	return 0;
}
void calc(char str[], char longest[]) {
	char temp[101];
	int l = 0, ret = 0;
	while (sscanf(str + l, "%s", temp) != EOF) {
		if (strlen(temp) > ret) {
			ret = strlen(temp);
			strcpy(longest, temp);
		}
		l += strlen(temp);
	}
}

时间限制 1 秒
内存限制 32 MB
讨论 统计
上一题 下一题