题目
描述 | 计算字符串最后一个单词的长度,单词以空格隔开。 |
---|---|
知识点 | 字符串,循环 |
运行时间限制 | 0M |
内存限制 | 0 |
输入 | 一行字符串,长度小于128。 |
输出 | 整数N,最后一个单词的长度。 |
样例输入 | hello world |
样例输出 | 5 |
思路
- 字符串长度已知,可以使用char数组,也可以使用string保存输入数据。string更加通用、强大,所以习惯上还是喜欢使用string。
输入字符串的几种方式:
- C语言:
#include <stdio.h>
char buf[130];
gets(buf);
- C++:
#include <string>
string buf;
cin.geline(buf);
getline原型:istream& getline(char line[], int size, char endchar = ‘\n’);
可以看到getline是以换行位结束标志。- C语言:
从字符串最后一个字符开始计数,直到找到‘ ’空格为止,这就是最后一个单词的长度。
代码
#include <iostream> #include <string> using namespace std; int main() { string str; getline(cin,str); //cout<<str<<endl; unsigned long i; for(i = str.length(); i > 0; i--) { if(str[i] == ' ') { i++; break; } } //cout<<str.length()<<" " <<i<<endl; cout<<str.length() - i<<endl; return 0; }