描述
计算字符串最后一个单词的长度,单词以空格隔开,字符串长度小于5000。输入描述: 输入一行,代表要计算的字符串,非空,长度小于5000。
输出描述: 输出一个整数,表示输入字符串最后一个单词的长度。
示例
输入: hello nowcoder
输出: 8
说明: 最后一个单词为nowcoder,长度为8
Solution
version1 char数组
#include<iostream> using namespace std; int main(){ char a[5000] = {0}; //带空格的字符串输入需要cin.get cin.get(a,5000); //查看是否为单单词,是,则输出 int i = 0,count = 0; while(a[i]!=' '&&a[i]!='\0'){ i++; } if(a[i]==' '){ i=0; //计算字符串长度 while(a[i]!='\0'){ i++; } //从终止符开始,数到空格就是最后一个单词的长度 while(a[i]!=' '){ i--; count++; } cout<<count-1; } else{ cout<<i; } return 0; }
version2 使用string
#include<iostream> #include<string> using namespace std; int main(){ string str; getline(cin,str); int count=0; int len=str.length(); for(int i=(len-1);i>=0;i--){ if(str[i]!=' '){ count++; } else{ break; } } cout<<count<<endl; return 0; }
version3 钻输入的漏洞
#include<bits/stdc++.h> using namespace std; int main() { string s; while(cin >> s); cout << s.size(); return 0; }
Tips:输入带空格的字符串需用 cin.get(char*,num) 或 getline(cin,str) 。