记忆数字

记忆数字

https://ac.nowcoder.com/acm/contest/80917/D

记忆数字

标签: 字符串
难度: 2颗星

思路:

遍历字符串,维护单词长度 len,如果是当前字符是字母就让len++,否则检查一下len是否为0,如果为0则直接输出len % 10并重置len

技巧:

使用 isalpha() 函数判断字符是不是字母,输入使用getline(cin,str)

注:

结尾要加一个判断,防止末尾没有不是字母的符号,最后一个单词输出不了。

示例:

#include<bits/stdc++.h>
using namespace std;
int main() {
    string str;
    getline(cin, str);
    int len = 0;
    for (char ch : str) {
        if (isalpha(ch)) {
            len++;
        } else if (len) {
            cout << len % 10;
            len = 0;
        }
    }
    if (len) {
        cout << len % 10;
    }
    return 0;
}

补充:

在C++中,isalpha() 函数是标准库中的一个字符判断函数,它用于检查给定的字符是否是字母。这个函数属于 <cctype> 头文件,因此在使用之前需要包含这个头文件。

函数的原型如下:

int isalpha(int c);
  • c 是一个整数参数,代表要检查的字符。

函数的返回值:

  • 如果字符 c 是字母(大写或小写),则返回非零值(通常是1)。
  • 如果字符 c 不是字母,则返回0。

这里有一个简单的示例,展示了如何使用 isalpha() 函数:

#include <iostream>
#include <cctype>  // 包含isalpha()函数的头文件

int main() {
    char ch = 'a';
    if (isalpha(ch)) {
        std::cout << ch << " 是一个字母" << std::endl;
    } else {
        std::cout << ch << " 不是一个字母" << std::endl;
    }
    return 0;
}

在这个示例中,我们检查字符 'a' 是否是一个字母。由于 'a' 是一个字母,所以程序将输出 'a' 是一个字母

需要注意的是,isalpha() 函数检查的是字符的类别,而不是它的编码值。例如,即使字符的ASCII值在字母的范围内,如果它不是标准的字母字符,isalpha() 也会返回0。此外,isalpha() 函数通常只识别标准的ASCII字母,对于扩展的ASCII字符集或Unicode字符集中的字母,可能需要使用其他函数或方法。

全部评论

相关推荐

vip牛牛:测试吧,开发现在至少212
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务