记忆数字
记忆数字
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字符集中的字母,可能需要使用其他函数或方法。
查看22道真题和解析