用C语言写一个在一个已知的字符串中查找最长单词,假定字符串中只含字母和空格,空格用来 分隔不同单词
时间: 2024-03-23 22:39:38 浏览: 97
好的,这个问题可以通过C语言中的字符串操作函数和循环来解决。以下是一个简单的实现:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str[100]; // 假设字符串长度不超过100
printf("请输入一个字符串:");
fgets(str, 100, stdin); // 从标准输入读入字符串
str[strlen(str)-1] = '\0'; // 去掉字符串末尾的换行符
char max_word[100]; // 用于存储最长单词
int max_len = 0; // 用于存储最长单词的长度
char *p = strtok(str, " "); // strtok函数用于分割字符串,第一次调用需要传入原字符串和分隔符
while (p != NULL) { // 如果分割结果不为空
int len = strlen(p); // 计算当前单词的长度
if (len > max_len) { // 如果当前单词比最长单词还长
strcpy(max_word, p); // 更新最长单词
max_len = len;
}
p = strtok(NULL, " "); // 继续分割字符串
}
printf("最长单词是:%s\n", max_word);
return 0;
}
```
这个程序首先使用fgets函数从标准输入读入字符串,然后使用strtok函数将字符串分割成单词。在循环中,它计算每个单词的长度,并将最长单词的长度和内容保存下来,最后输出最长单词。
阅读全文