目录
1.字符串最后一个单词的长度
【思路】:这道题找到最后一个单词也就是找到最后一个空格,可以用rfind反向迭代找到最后一个空格,算出最后一个单词的大小。如果只有一个单词没有空格的话那么直接输出这个单词的长度。
但是要注意的是,在单词与单词之间的间隔,是用空格来进行的,直接用cin>>s时候,如果输入像hello nowcoder这样的字符串,s仅识别第一个单词,空格之后的字符串被识别为下一个字符串,留在了缓冲区。所以不能用cin>>s来获取字符串。
想要将空格页识别成字符串
【方法一】:
string s;
//C写法
char ch = getchar();//获取一个字符
while (ch != '\n')//循环加入s来获取字符串,遇到\n就是换行停下来
{
s += ch;
ch = getchar();
}
//getline(cin,s);
【方法2】:
string s;
//C++写法
char ch = cin.get();
while(ch!='\n')
{
s+=ch;
ch=cin.get();
}
【方法3】:
在C++的string类中,写入了一个成员方法getline,用来获取字符串的,参数1是输入流,参数2为要获取的字符串。其基本思想就是上面代码的体现。
string s;
getline(cin,s);
#include<iostream>
using namespace std;
#include <string>
int main()
{
string s;
getline(cin,s);
size_t pos=s.rfind(' ');//获取从后向前数第一个空格位置
if(pos!=string::npos)//当不等于npos(值为-1,也就代表没找到),找到了
{
s