华为机试题HJ1-HJ2

华为机试https://www.nowcoder.com/exam/oj/ta?tpId=37

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

描述:
计算字符串最后一个单词的长度,单词以空格隔开,字符串长度小于5000。(注:字符串末尾不以空格为结尾)
输入描述:
输入一行,代表要计算的字符串,非空,长度小于5000。
输出描述:
输出一个整数,表示输入字符串最后一个单词的长度。
示例1
输入:hello nowcoder
输出:8
说明:最后一个单词为nowcoder,长度为8

代码实现

#include <iostream>
#include <string>
using namespace std;

int main() {
    string s;
    getline(cin, s);
    int ans = 0;
    int i = s.length() -1;
    while (i >= 0 && s[i] != ' '){
        i--;
        ans++;
    }
    cout << ans;
    return 0;
}
// 64 位输出请用 printf("%lld")
说明:getline(cin,s) //接受一个字符串,可以接受空格并输出,必须包含头文件#include<cstring>或#include<string>, s必须为字符串类型,即 string s;输出时需要按两次回车键才能显示,第一次按回车表示字符串结束,第二次按回车才开始输出。
C++ string成员函数 length() 等同于 size()

如下函数的声明:

//返回string 长度,单位字节
size_t length() const noexcept;

//返回string 长度,单位字节。作用等同于length()
size_t size() const noexcept;

HJ2 计算某字符出现次数

描述:
写出一个程序,接受一个由字母、数字和空格组成的字符串,和一个字符,然后输出输入字符串中该字符的出现次数。(不区分大小写字母)
数据范围: 1≤n≤1000
输入描述:
第一行输入一个由字母和数字以及空格组成的字符串,第二行输入一个字符。
输出描述:
输出输入字符串中含有该字符的个数。(不区分大小写字母)
示例1
输入:
ABCabc
A
输出:2

代码实现

#include <iostream>
#include <string>
using namespace std;

int main() {
    string s;
    getline(cin, s);
    char c;
    c = tolower(getchar());
    int res = 0;
    for (int i = 0; i < s.size(); i++) {
        if (tolower(s[i]) == c) {
            res++;
        }
    }
    cout << res;
    return 0;
}

C/C++库函数(tolower/toupper)实现字母的大小写转换
1 int tolower(int c)
该函数把大写字母转换为小写字母。
2 int toupper(int c)
该函数把小写字母转换为大写字母。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容