gpt4 book ai didi

c++ - isdigit 无法正常工作

转载 作者:搜寻专家 更新时间:2023-10-30 23:58:36 24 4
gpt4 key购买 nike

我正在尝试通过遍历整个字符串并输出整数来测试字符串是否包含整数。我的方法涉及将字符串转换为 c 字符串,atoi c 字符串,然后使用 isdigit 函数测试它是否为整数。由于某些未知原因,isdigit 函数在遇到整数时返回 false。

我需要帮助解决这个问题

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

int main()
{
string p = "[ab, e2cd]";

for (int k = 0; k < p.length(); k++)
{
if (isdigit(atoi(p.substr(k,1).c_str())) == true) //testing done here
{
cout << atoi(p.substr(k, 1).c_str());
}
}
}

最佳答案

isdigit接受一个 int,其值为您所在语言环境中的单个字符。可以向它传递一个从 char 转换而来的 unsigned char,然后让转换为 int 完成它的工作。由于 string 包含 chars,您可以像这样使用它的元素:

if ( static_cast<unsigned char>(isdigit(p[k])) ) { ....

关于c++ - isdigit 无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19900301/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com