网站更改备案主体seo技术公司
一:题目
二:思路
用rfind()函数倒着找第一个空格,返回的值为pos,然后打印size()-(pos+1),pos==npos就代表只有一个单词,则直接返回size
#include <iostream>
using namespace std;
int main()
{string s1;cin>>s1;size_t pos = s1.rfind(' ');if(pos!=string::npos){cout<<s1.size()-(pos+1);}else {cout<<s1.size();}
}
但这是错的,因为cin 和 scanf 对空格和换行都是无法读取的 默认是人为的换行或者多个输入的分割,要用string库中的getline()函数进行读取才可以
如下才是对的:
#include <iostream>
using namespace std;
int main()
{string s1;getline(cin,s1);size_t pos = s1.rfind(' ');if(pos!=string::npos){cout<<s1.size()-(pos+1);}else {cout<<s1.size();}
}