题目链接:最后一个单词
思路:本来想着从前往后做,知道'\0'结束,也这么敲代码了,但是最后的空格没办法判断,所以此路不通;
正解为:倒着处理,可以处理末尾空格问题(ORZ还是自己太cei啊)
PS:上篇说道,要开始学c++,这次就用到了一点。getline,嘻嘻~
#include<bits/stdc++.h>
using namespace std;
int main()
{
string s;
getline(cin,s); //输入一行数据, gets不支持,所以不能用gets
int ans = 0;
int l = s.length()-1; //字符串的最后一个数据
while(l>=0 && s[l]==' ') //用while循环去掉末尾多余的空格,不能用for循环(如果字符串末尾没有
l--; //多余的空格,for循环就很鸡肋)
for(; l>=0; l--) //最后一个单词
{
if(s[l]==' ')
break;
ans++;
}
printf("%d\n", ans);
return 0;
}