输出几个单词,以空格隔开,输出最后一个单词的长度。
直接写最终解题代码
#include
using namespace std;
int main()
{
string s;
getline(cin,s);
cout<
string s;
创建string
getline(cin,s);
连续接收字符串
cout<
用size
减倒数第一个‘ ’
(空格)的位置 再减去1
,因为size
是最后一个字符的下一个位置
这样左开右闭相减就是 字符的个数。
这是几个月前的记录
#include
using namespace std;
int main()
{
string s;
//cin>>s;//cin读到空格或换行结束 scanf同理
//方法一:一个字符一个字符拿
// char ch = getchar();
// //char ch = cin.get();
// while(ch!='\n')
// {
// s+=ch;
// ch = getchar();
// }
//方式二:
getline(cin,s);
size_t pos = s.rfind(' ');
if(pos == string::npos)
{
cout <
几个月后的今天我重新做了一下
#include
using namespace std;
int main()
{
string s;
getline(cin,s);
size_t pos = s.rfind(' ');
int count = 0;
while(pos != s.size()-1)
{
++pos;
++count;
}
cout <
我写完后,看了第一版的代码,于是觉得 while循环做的事,是冗余的!有了进一步的改造
#include
using namespace std;
int main()
{
string s;
getline(cin,s);
size_t pos = s.rfind(' ');
cout<
后来发现pos做的事也可以省略!!!
#include
using namespace std;
int main()
{
string s;
getline(cin,s);
cout<
算最后一个单词的size
那直接循环接收,覆盖掉之前的单词,直接输出size
,牛蛙!
int main() {
string s;
while(cin >> s);
cout << s.size();
return 0;
}