gpt4 book ai didi

c++ - 如何识别字符串只包含数字?

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:12:21 31 4
gpt4 key购买 nike

如何只打印字符串中的文本?我只想打印 abc from.

string numtext = "abc123";

完整代码如下:

#include <stdio.h>

int main()
{
string text = "abc123";

if (text.matches("[a-zA-Z]") //get an error initialization makes integer from pointer without a cast
{
printf("%s", text);
}
getch();
}

我的字符串包含数字和字母,我只想打印字母。但是我得到一个错误。我做错了什么?

最佳答案

首先,没有成员函数叫std::string::matches available in the standard string library对于这种情况。

其次,题名与你问的问题代码不符。但是,我会尝试处理两者。 ;)


How to print only text in a string?

您可以简单地打印字符串中的每个元素(即 char s),如果它是一个字母表,同时遍历它。可以使用名为 std::isalpha 的标准函数来完成检查。 , 来自标题 <cctype> . ( See live example here )

#include <iostream>
#include <string>
#include <cctype> // std::isalpha

int main()
{
std::string text = "abc123";

for(const char character : text)
if (std::isalpha(static_cast<unsigned char>(character)))
std::cout << character;
}

输出:

abc

How to identify string is containing only number?

提供一个函数来检查字符串中的所有字符是否为数字。您可以使用标准算法 std::all_of (需要包含标题 <algorithm>)以及 std::isdigit (来自 <cctype> header )为此。 ( See live example online )

#include <iostream>
#include <string>
#include <algorithm> // std::all_of
#include <cctype> // std::isdigit
#include <iterator> // std::cbegin, std::cend()

bool contains_only_numbers(const std::string& str)
{
return std::all_of(std::cbegin(str), std::cend(str),
[](char charector) {return std::isdigit(static_cast<unsigned char>(charector)); });
}

int main()
{
std::string text = "abc123";
if (contains_only_numbers(text))
std::cout << "String contains only numbers\n";
else
std::cout << "String contains non-numbers as well\n";
}

输出:

String contains non-numbers as well

关于c++ - 如何识别字符串只包含数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58516158/

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