C语言寻找字符串中最长的单词并输出(将非字母字符看做单词分隔符)。
时间: 2024-02-15 17:04:20 浏览: 88
查找字符串最长的单词
4星 · 用户满意度95%
好的,这是一个字符串处理的问题。C语言实现过程如下:
1. 定义一个变量 `max_word_len` 来记录最长单词的长度,初始值为 0。
2. 定义两个变量 `start_index` 和 `end_index` 来记录单词的起始和结束位置,初始值都为 -1。
3. 遍历字符串中的每个字符,如果当前字符是字母,则将 `end_index` 设置为当前位置;如果当前字符不是字母,则判断 `start_index` 是否为 -1,如果不是则说明已经找到了一个单词,计算该单词的长度并与 `max_word_len` 比较,如果大于则更新 `max_word_len`。
4. 最后输出 `max_word_len`。
下面是具体的实现代码:
```c
#include <stdio.h>
#include <string.h>
#include <ctype.h>
int find_longest_word(char *s) {
int max_word_len = 0;
int start_index = -1, end_index = -1;
int len = strlen(s);
for (int i = 0; i < len; i++) {
if (isalpha(s[i])) {
if (start_index == -1) {
start_index = i;
}
end_index = i;
} else {
if (start_index != -1) {
int word_len = end_index - start_index + 1;
if (word_len > max_word_len) {
max_word_len = word_len;
}
start_index = end_index = -1;
}
}
}
if (start_index != -1) {
int word_len = end_index - start_index + 1;
if (word_len > max_word_len) {
max_word_len = word_len;
}
}
return max_word_len;
}
int main() {
char s[] = "Hello, world! This is a test string.";
int max_word_len = find_longest_word(s);
printf("%d\n", max_word_len); // 输出 6,因为最长的单词是 "string",长度为 6。
return 0;
}
```
你可以编译并运行这个程序,例如:
```shell
gcc -o main main.c
./main
```
希望这个答案能够帮助到你!
阅读全文