我试图使用标准C库的一些功能,但我得到了这个错误:没有从std :: string到int的合适转换.我刚从C学习C++.请不要用困难的术语解释这个问题.
#include <iostream>
#include <string>
#include <cctype>
using namespace std;
int main(void)
{
string s1{ "Hello" };
bool what{ isalnum(s1) };
return 0;
}
Run Code Online (Sandbox Code Playgroud)
isalnum 告诉您单个字符,而不是整个字符串是否为字母数字.
如果要检查字符串是否为字母数字,则需要使用循环查看每个字符:
bool what = true;
for (unsigned char ch : s1) {
if (!std::isalnum(ch)) {
what = false;
break;
}
}
Run Code Online (Sandbox Code Playgroud)
或算法:
#include <algorithm>
bool what = std::all_of(s1.begin(), s1.end(),
[](unsigned char ch){return std::isalnum(ch);});
Run Code Online (Sandbox Code Playgroud)
正如评论中所提到的,使用字符分类功能时会出现许多并发症和死亡陷阱,即使它们看似简单.我认为我的例子避免了大部分内容,但要谨慎行事.
| 归档时间: |
|
| 查看次数: |
2477 次 |
| 最近记录: |