写一个函数,输入一行字符,将此字符串中最长的单词输出。 输入提示信息:"输入一行文本:\n" 用gets()输入一行字符 输出提示信息:"\n最长的单词是:" 输出字符用"%c" 输出所有字符后用"\n" 程序的运行示例如下: 输入一行文本:I am a student. 最长的单词是:student
时间: 2023-07-05 16:08:25 浏览: 96
以下是实现该功能的代码:
```c
#include <stdio.h>
#include <string.h>
#define MAX_LEN 1000
int main() {
char str[MAX_LEN];
printf("输入一行文本:\n");
gets(str);
int len = strlen(str);
char longest_word[MAX_LEN] = "";
char current_word[MAX_LEN] = "";
int longest_len = 0;
int current_len = 0;
for (int i = 0; i <= len; i++) {
if (str[i] == ' ' || str[i] == '\0') {
if (current_len > longest_len) {
longest_len = current_len;
strcpy(longest_word, current_word);
}
current_len = 0;
current_word[0] = '\0';
} else {
current_len++;
strncat(current_word, &str[i], 1);
}
}
printf("\n最长的单词是:%s\n", longest_word);
return 0;
}
```
该程序首先使用`gets()`函数读入一行字符,然后遍历整个字符串,逐个判断字符是否为单词的一部分,如果是,则将该字符加入当前单词中,并增加当前单词的长度;如果不是,则将当前单词与最长单词进行比较,并更新最长单词和它的长度,然后重置当前单词和长度。最后将最长单词输出即可。需要注意的是,为了避免越界,我们需要把循环的终止条件设为`i <= len`,并在循环内部对空格和字符串结束符进行处理。
阅读全文