【华为机试】HJ1 字符串最后一个单词的长度

【华为机试】 HJ1 字符串最后一个单词的长度

描述
计算字符串最后一个单词的长度,单词以空格隔开,字符串长度小于5000。(注:字符串末尾不以空格为结尾)
输入描述:
输入一行,代表要计算的字符串,非空,长度小于5000。

输出描述:
输出一个整数,表示输入字符串最后一个单词的长度。

示例1
输入:

hello nowcoder
输出:
8

说明:
最后一个单词为nowcoder,长度为8

实现前知识点了解

获取用户输入

  1. cin>>n或者cin>>str;
  2. getline(istream& is, string& str, char delim);//is通常为cin,delim为停止标记符,默认为/n
    通常这样使用getline(cin,str);
  3. cin.getline(string& str, char delim);
  4. .cin.get();//获取第一个字符,即使是回车也会捕捉;或者一个整数。。
  5. cin.get(char* ch,int lenght);
  6. cin.get(char* ch,int len);或cin.get(char* ch);
  7. scanf(“%d”,&n)
  8. gets(char* ch)
    获取用户不指定数量的输入
 while(cin>>n){}
 
 char ch= cin.get();
 while(ch != '\n'){
 ch = cin.get();
 }
 
 while(scanf("%d",%n)= EOF){}

getline()

gets()

思路

从后遍历整个字符串,从第一个非空格开始计算,遇到第一个空格时结束

#实现

#include <iostream>
using namespace std;

//cin>>ch;
//cin.getline(str1,5000);
//getline(cin,str);

int main() {
    string str1;
    getline(cin,str1);
    int last_word_lenght = 0;
    int str1_lenght = str1.size();
    for(int i = str1_lenght - 1;i >= 0;i--){
        if(str1[i] == ' ' && last_word_lenght == 0)
            continue;
        if(str1[i] == ' ')
            break;
        last_word_lenght += 1;
    }
    cout<<last_word_lenght;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值