用C++编写一个代码,从输入的一行字符串中求出最长英文单词长度及最长单词个数,并输出长度和个数,单词之间只能用一个或多 个空格隔开。如输入字符串”I am a student”时,最长单词的长度为7,个数为1。而输入字符串”word body book try”
时间: 2024-05-27 19:10:47 浏览: 67
时,最长单词的长度为4,个数为2。
代码如下:
#include <stdio.h>
#include <string.h>
int main()
{
char str[100]; // 定义字符串数组
int len = 0; // 最长单词长度
int count = 0; // 最长单词个数
int temp_len = 0; // 当前单词长度
printf("请输入一行字符串:");
fgets(str, sizeof(str), stdin); // 读取字符串
for (int i = 0; i < strlen(str); i++) {
if (str[i] != ' ') { // 如果当前字符不是空格
temp_len++; // 当前单词长度加1
} else { // 如果当前字符是空格
if (temp_len > len) { // 如果当前单词长度大于最长单词长度
len = temp_len; // 更新最长单词长度
count = 1; // 最长单词个数为1
} else if (temp_len == len) { // 如果当前单词长度等于最长单词长度
count++; // 最长单词个数加1
}
temp_len = 0; // 当前单词长度清零
}
}
// 处理最后一个单词(如果没有空格结尾)
if (temp_len > len) {
len = temp_len;
count = 1;
} else if (temp_len == len) {
count++;
}
printf("最长单词长度为:%d\n", len);
printf("最长单词个数为:%d\n", count);
return 0;
}
阅读全文