用c语言编写程序用来计算一个英文句子中最长单词的长度(字母个数,可实现指定)max。假设该英文句子中只含有字母和空格,在空格之间连续的字母串称为单词,句子以"."为结束。
时间: 2024-12-25 13:25:24 浏览: 11
在C语言中,你可以通过遍历字符串并逐个处理每个单词来找到最长单词的长度。以下是一个简单的函数示例,它实现了这个功能:
```c
#include <stdio.h>
#include <ctype.h> // 包含字符处理函数如isspace()
int longest_word_length(char* sentence, int max_len) {
if (sentence == NULL || *sentence == '\0') {
return 0; // 如果输入为空,返回0
}
int len = 0;
int current_word_len = 0;
char prev_char = '\0'; // 上一个字符,用于判断是否新词开始
for (char* p = sentence; *p != '.' && *p != '\0'; p++) {
if (!isspace(*p)) { // 非空格字符
if (prev_char == ' ') { // 新词开始
current_word_len = 1;
}
current_word_len++;
} else {
if (current_word_len > len) {
len = current_word_len;
}
current_word_len = 0; // 空格遇到,重置当前词长度
}
prev_char = *p;
}
// 检查最后一个单词是否更长
if (current_word_len > len && current_word_len <= max_len) {
len = current_word_len;
}
return len;
}
// 主函数演示如何使用
int main() {
char sentence[] = "Hello world, this is a test string with some really long words.";
int max允许的最大长度 = 20; // 示例值,可以根据需求调整
int longest_length = longest_word_length(sentence, max);
printf("The length of the longest word is: %d\n", longest_length);
return 0;
}
```
在这个代码中,`longest_word_length` 函数接收一个字符串 `sentence` 和一个最大长度 `max_len` 参数。它会遍历整个句子,直到遇到句点或字符串结束,并在遇到空格时更新最长单词的长度。
阅读全文