4、自定义一个函数,找出一行英文句子中最长的单词出现的开始位置 英文句子的输入和输出结果要求在主函数中实现。用c语言编写
时间: 2024-02-29 19:52:24 浏览: 68
以下是实现代码:
```c
#include <stdio.h>
#include <string.h>
#include <ctype.h>
int find_longest_word(char *sentence, int *start_pos) {
int max_len = 0;
int len = 0;
int index = 0;
int start = 0;
int i;
for (i = 0; sentence[i] != '\0'; i++) {
if (isalpha(sentence[i])) { // 判断是否为字母
if (len == 0) { // 如果是单词的第一个字母
start = i; // 记录单词的起始位置
}
len++;
} else {
if (len > max_len) { // 如果当前单词长度大于之前记录的最大长度
max_len = len; // 更新最大长度
index = start; // 更新最大长度单词的起始位置
}
len = 0; // 重置单词长度
}
}
if (len > max_len) { // 处理最后一个单词
max_len = len;
index = start;
}
*start_pos = index; // 保存最长单词的起始位置
return max_len;
}
int main() {
char sentence[100];
printf("请输入一行英文句子:\n");
fgets(sentence, 100, stdin);
int start_pos;
int max_len = find_longest_word(sentence, &start_pos);
printf("最长单词长度为%d,起始位置为%d\n", max_len, start_pos);
return 0;
}
```
运行结果示例:
```
请输入一行英文句子:
Hello world, this is a test sentence.
最长单词长度为8,起始位置为12
```
阅读全文