c++提取字符串中的数字
作者:野牛程序员:2023-07-18 09:32:27 C++阅读 3157
要提取字符串中的数字,你可以使用C++标准库中的字符串处理函数和正则表达式库。下面是使用两种方法的示例代码:
方法一:使用字符串处理函数
#include <iostream>
#include <string>
#include <cctype>
int main() {
std::string str = "abc123def456ghi";
std::string digits = "";
for (char c : str) {
if (std::isdigit(c)) {
digits += c;
}
}
std::cout << "提取的数字为: " << digits << std::endl;
return 0;
}输出:
提取的数字为: 123456
方法二:使用正则表达式
#include <iostream>
#include <string>
#include <regex>
int main() {
std::string str = "abc123def456ghi";
std::regex regex("\\\\d+"); // 匹配一个或多个数字
std::smatch match;
std::string digits = "";
// 使用迭代器遍历匹配结果
auto words_begin = std::sregex_iterator(str.begin(), str.end(), regex);
auto words_end = std::sregex_iterator();
for (std::sregex_iterator it = words_begin; it != words_end; ++it) {
digits += (*it).str();
}
std::cout << "提取的数字为: " << digits << std::endl;
return 0;
}输出:
提取的数字为: 123456
以上两种方法都可以提取字符串中的数字。第一种方法使用了一个循环,逐个字符检查是否为数字,如果是数字则将其添加到结果字符串中。第二种方法使用了正则表达式 \\d+ 来匹配一个或多个数字,并使用迭代器遍历所有匹配结果,将其添加到结果字符串中。可以根据需要选择适合你的情况的方法。
野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892

- 上一篇:c++把一个整数每个数位的数字提取
- 下一篇:什么叫整数?
