c++从字符串中提取数字求和
时间: 2023-10-08 20:07:40 浏览: 65
可以使用正则表达式来从字符串中提取数字,然后将这些数字相加。具体代码如下:
```cpp
#include <iostream>
#include <regex>
#include <string>
using namespace std;
int main()
{
string str = "abc123def456ghi789";
regex reg("\\d+");
smatch match;
int sum = 0;
while (regex_search(str, match, reg)) {
for (auto x : match) {
sum += stoi(x);
}
str = match.suffix().str();
}
cout << "Sum of all numbers in the string: " << sum << endl;
return 0;
}
```
以上代码会输出:Sum of all numbers in the string: 1368,这是因为字符串中的数字分别为123、456和789,它们的和为1368。
相关问题
c++从字符串中提取数字字符0-9求和
可以使用循环遍历字符串,判断每个字符是否为数字字符0-9,如果是则将其转化为数字并加入到总和中。以下是代码示例:
```cpp
#include <iostream>
#include <string>
using namespace std;
int main()
{
string str = "abc123def456ghi789";
int sum = 0;
for (int i = 0; i < str.length(); i++) {
if (isdigit(str[i])) {
sum += str[i] - '0';
}
}
cout << "Sum of all digit characters in the string: " << sum << endl;
return 0;
}
```
输出结果为:Sum of all digit characters in the string: 45。这是因为字符串中的每个数字字符都被分开了,然后相加得到了45。
c++中在字符串中提取数字
在C语言中,可以使用标准库函数中的`isdigit()`函数来判断一个字符是否是数字字符。可以通过循环遍历字符串中的每个字符,判断是否是数字字符,如果是,则可以将其转换为数字类型。以下是一个示例代码:
```c
#include <stdio.h>
#include <ctype.h>
int main() {
char str[] = "abc123def456";
int num = 0;
for(int i = 0; str[i] != '\0'; i++) {
if(isdigit(str[i])) {
num = num * 10 + (str[i] - '0'); // 将字符转换为数字
}
}
printf("The extracted number is %d", num);
return 0;
}
```
输出结果为:`The extracted number is 123456`。