计算字符串最后一个单词的长度,单词以空格隔开,字符串长度小于5000。(注:字符串末尾不以空格为结尾)

该博客探讨如何在C语言和C++中有效地找出字符串中最后一个单词的长度,字符串长度不超过5000,且末尾无空格。
/*
问题描述:
计算字符串最后一个单词的长度,单词以空格隔开,字符串长度小于5000。(注:字符串末尾不以空格为结尾) 

输入描述:
输入一行,代表要计算的字符串,非空,长度小于5000。

输出描述:
输出一个整数,表示输入字符串最后一个单词的长度。
---------------------------------------------------------------------
示例1
输入:

hello nowcoder

输出:

8

说明:

最后一个单词为nowcoder,长度为8  
*/
#include<stdio.h>
#include<string.h>//strlen()函数的库
int main(void)
    
{
   <
在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; } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值