题目描述:
计算字符串最后一个单词的长度,单词以空格隔开,字符串长度小于5000。(注:字符串末尾是不以空格为结尾)
输入描述:
输入一行,代表要计算的字符串,非空,长度小于5000。
输出描述:
输出一个整数,表示输入字符串最后一个单词的长度。
示例1:
输入:hello dayday
输出:6
说明:最后一个单词为dayday,长度为6。
解题思路:
既然是求最后一个字符的长度,且以空格分开的,那么可以找到最后一个单词前的空格的位置pos(pos指的就是除最后一个单词之前字符串长度),用整个字符串的长度减去pos,就可以得到最后一个单词的长度。
#include <iostream>
#include <string.h>
using namespace std;
int main(){
string s;
getline(cin,s);
int pos = s.rfind(' '); //s.rfind(str) 逆向查找匹配str字符,并且返回其位置pos
if(pos!=string::npos){ //如果pos不等于字符串的长度,说明多个单词
cout<<s.size()-(pos+1)<<endl; //则返回最后一个单词长度
}
else{
cout<<s.size()<<endl;//否则表示只有一个单词,则返回字符串长度
}
return 0;
}