题目描述
计算字符串最后一个单词的长度,单词以空格隔开。
输入描述
一行字符串,非空,长度小于5000。
输出描述
整数N,最后一个单词的长度。
示例
输入:hello world
输出:5
思路
1. 利用 getline() 函数读取整行字符串,从字符串末尾开始,向前计数,遇到空格停止
#include <iostream>
#include <string>
using namespace std;
int main(){
string input;
getline(cin,input);
int count=0;
for(int i=input.size()-1;i>=0;i--){
if(input[i]==' '){
break;
}
count++;
}
cout<<count<<endl;
return 0;
}
2.利用gets()函数读取整行字符串
#include <iostream>
#include <stdio.h>
using namespace std;
int main()
{
char input[1024] = {0};
int count = 0;
gets(input);
for(int i = strlen(input)-1; i >= 0; i--)
{
if(input[i] == ' ')
break;
count++;
}
cout << count;
return 0;
}
3.利用容器 vector,利用 cin 读取字符串,由于 cin 是利用空格、制表符和换行符来确定字符结束的位置,每次仅能读取一个单词,将每次读取的单词存入容器中,该容器最后一个元素长度即为所求的最后一个单词长度。
#include <iostream>
#include <vector>
#include <string>
using namespace std;
int main(){
string input;
vector<string> arr;
while(cin>>input){
arr.push_back(input);
}
cout<<arr[arr.size()-1].size()<<endl;
return 0;
}