功能详细:提取字符串中的连续数字作为整数,依次存储到数组中,统计整数个数并输出整数。
#include<stdlib.h>
#include <iostream>
using namespace std;
int main()
{
const char* cinstr = "a123x456_17960?302ab5876"; // 初始化字符串,得到字符串首地址
int strzlen = strlen(cinstr) + 1; // 得到字符串长度(考虑结束字符'\0')
int save_int[50] = { 0 }; // 初始化整数数组,用于提取的整数
string str_space = ""; // 定义空字符串
int num_int = 0; // 用于累计保存的整数个数
for (int i = 0; i < strzlen; i++)
{
// 根据ASCII码判断字符是否为整数字符
if (*(cinstr + i) <= '9' && *(cinstr + i) >= '0' &&*(cinstr + i) != '\0')
{
str_space = str_space + *(cinstr + i); // 将整数字符拼接到字符串中
}
else
{
// 将拼接后的字符转换为整数并存储到数组中
if (str_space.length() > 0)
{
save_int[num_int] = atoi(str_space.c_str());
cout << save_int[num_int] << endl;
num_int += 1;
str_space = "";
}
}
}
cout << "字符串中包含的连续整数个数 = " << num_int << endl;
}