计算字符串最后一个单词的长度,单词以空格隔开,字符串长度小于5000。(注:字符串末尾不以空格为结尾)C语言
时间: 2024-09-24 07:19:03 浏览: 43
在C语言中,你可以通过以下几个步骤计算字符串最后一个单词的长度:
1. 首先,你需要定义一个指针变量`str`指向输入的字符串,并初始化它。
2. 创建一个临时指针`word_end`用于追踪单词结束的位置。初始值设为`str`,表示查找从第一个字符开始。
3. 使用`while`循环遍历字符串,直到找到空格或者到达字符串的末尾:
- 检查当前字符是否为空格。如果是,则更新`word_end`到前一个非空格位置,因为这将是当前单词的结尾。
- 如果不是空格,继续向前移动`word_end`。
4. 当遇到空格后,将`word_end`加一,因为这个位置后的字符属于下一个单词。
5. 当`word_end`超过`str + strlen(str) - 1`时(即接近字符串末尾),跳出循环,此时`word_end`就是单词的最后一个字符位置。
6. 最后,计算`word_end`与`str`之间的距离(减去1,因为我们不包括字符串末尾的空格)即可得到最后一个单词的长度。
以下是一个简单的函数实现示例:
```c
#include <stdio.h>
#include <string.h>
size_t last_word_length(char *str) {
size_t len = strlen(str);
char *word_end = str;
while (word_end < str + len && *word_end != ' ') {
word_end++;
}
if (*word_end == '\0') { // 没有空格的情况,整个字符串视为一个单词
return len;
} else {
return word_end - 1; // 减去空格和结束符
}
}
int main() {
char input[5000];
printf("请输入一个不超过5000字节的字符串: ");
fgets(input, sizeof(input), stdin); // 注意这里读取时需要去掉换行符
input[strlen(input) - 1] = '\0'; // 去掉fgets添加的换行符
size_t length = last_word_length(input);
printf("最后一个单词的长度是: %zu\n", length);
return 0;
}
```
阅读全文