C++简洁代码:

字符串最后一个单词的长度

http://www.nowcoder.com/questionTerminal/8c949ea5f36f422594b306a2300315da

C++简洁代码:

#include<bits/stdc++.h>

using namespace std;

int main() {
    string s;
    while(cin >> s);
    cout << s.size();
    return 0;
}
全部评论
.size()函数不是应该输出整个字符串的长度吗,怎么变成输出最后一个字符的长度了?
1 回复 分享
发布于 2021-05-16 09:33
cin输入的机制,有空格会停止,系统把空格作为数据间的分隔符,整个英文句子会一个单词一个单词的读。非常巧妙的使用了cin的读取逻辑
34 回复 分享
发布于 2021-09-19 19:47
while(cin>>s) {if(cin.get()=='\n') break;}
23 回复 分享
发布于 2021-03-17 14:25
while这个循环出不来吧
6 回复 分享
发布于 2021-03-14 13:11
a b c d string s; cin>>s;(s=a);cin>>s(此时s=b);.......cin>>s(s=d);(再cin的话由于没东西了即'\n',判断为假)
4 回复 分享
发布于 2021-09-19 19:51
这不是在误导?
4 回复 分享
发布于 2021-05-31 08:32
你这个要是输入没有输入结束符根本就出不来
3 回复 分享
发布于 2022-04-18 22:40
真是妙蛙种子吃着妙脆角走进了米奇妙妙屋
3 回复 分享
发布于 2021-09-03 14:20
这是钻输入的漏洞了吧
3 回复 分享
发布于 2021-08-25 21:29
作为答案确实可以,但是作为练习不可取
1 回复 分享
发布于 2022-02-25 01:01
字符串s:我好累,你写了覆盖,幸亏我皮厚,不然被你描透了
1 回复 分享
发布于 2022-02-23 21:31
离谱
1 回复 分享
发布于 2022-01-20 19:44
大佬真牛批啊!不过我抄了直接输出所有单词长度了,就改了下。 string str; int length = 0; while(cin >> str) length = str.size(); cout << length << endl; return 0;
1 回复 分享
发布于 2021-09-26 15:59
你这个有问题啊,因为他要的是最后一个单词的长度,你这个记录的是第一个单词的长度吧
点赞 回复 分享
发布于 2024-08-22 09:36 四川
这个是因为用空格分隔字符串,如果用的不是空格呢?比如说“Hello,world!”,这回的结果就是16了。所以上面的代码只能用来解答机器审核的问题。
点赞 回复 分享
发布于 2024-06-16 08:45 河南
请问你一个问题,如果最后一个字符是空格,那我取的题意的最后一个字符串应该是空格之前的那个单词,你这边cin直接截断的话,是不是就是0.这种情况考虑了吗?
点赞 回复 分享
发布于 2024-04-15 14:01 江苏
专业选手禁止参赛
点赞 回复 分享
发布于 2024-04-11 20:16 陕西
很厉害,也节省了使用空间
点赞 回复 分享
发布于 2024-03-25 11:54 荷兰
你真是个天才
点赞 回复 分享
发布于 2024-01-22 16:31 陕西
我也是第一时间就想出来这个代码,然后自测和保存提交都通过了。是不是因为有时候答案就是这么简单,是我们把问题想复杂了。cin的机制就是这样的,我们为什么不好好利用这个机制呢。
点赞 回复 分享
发布于 2023-11-17 10:02 江苏

相关推荐

评论
353
26
分享

创作者周榜

更多
牛客网
牛客企业服务