描述
计算字符串最后一个单词的长度,单词以空格隔开,字符串长度小于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) 。