输出字符串中最长的单词(非字母字符作为单词分隔符) 如果有大于一个同等长度的单词则只输出第一个C语言
时间: 2024-02-15 09:04:26 浏览: 52
查找字符串最长的单词
4星 · 用户满意度95%
好的,您可以使用以下的C语言代码实现:
```c
#include <stdio.h>
#include <string.h>
#include <ctype.h>
#define MAX_LENGTH 1000
int main() {
char str[MAX_LENGTH];
printf("请输入字符串: ");
fgets(str, MAX_LENGTH, stdin);
int len = strlen(str);
int max_len = 0, max_pos = 0;
int cur_len = 0, cur_pos = 0;
for (int i = 0; i < len; i++) {
if (isalpha(str[i])) {
cur_len++;
} else {
if (cur_len > max_len) {
max_len = cur_len;
max_pos = cur_pos;
}
cur_pos = i + 1;
cur_len = 0;
}
}
if (max_len == 0) {
printf("字符串中没有单词\n");
} else {
printf("最长的单词是: ");
for (int i = max_pos; i < max_pos + max_len; i++) {
printf("%c", str[i]);
}
printf("\n");
}
return 0;
}
```
这段代码使用了一个状态机来遍历字符串,并且使用了isalpha函数来判断一个字符是否为字母字符。如果当前字符是字母,则计算当前单词的长度;如果当前字符不是字母,则判断当前单词的长度是否比之前的最大长度更长,并更新最大长度和最大长度的位置。最后输出最长的单词即可。
阅读全文