c++输入一个字符串,内有数字和非数字字符,如:a123x456&17960?302tab5876, 将其中连续的数字作为一个整数,依次存放到一整型数组中。如123放在a[0]中,456放在a[1]中…统计共有多少个整数,并输出这些数。(第6章习题16) 以参考如下程序结构设计: int NumInString(char s[], int num[]) { … return k; //返回整数的个数 } int main() { char str[]="a123x456&17960?302tab5876"; int num[100] = {0}; int count = 0; count=NumInString(str, num); cout<<"字符串中整数的个数:" << count << endl; for (int i = 0;i < count;i++) cout << num[i] << ","; cout << endl; return 0; }
时间: 2024-01-09 17:04:37 浏览: 164
字符型常量-选择文件 ( 03 C++基本要素
以下是实现该程序的代码:
```c++
#include <iostream>
using namespace std;
int NumInString(char s[], int num[]) {
int k = 0; // 记录整数个数
int i = 0;
while (s[i] != '\0') { // 遍历字符串
if (isdigit(s[i])) { // 如果是数字
int n = 0; // 用于记录连续数字的数值
while (isdigit(s[i])) {
n = n * 10 + s[i] - '0';
i++;
}
num[k] = n; // 存入整型数组
k++; // 整数个数加1
}
else {
i++; // 非数字字符直接跳过
}
}
return k;
}
int main() {
char str[] = "a123x456&17960?302tab5876";
int num[100] = {0};
int count = 0;
count = NumInString(str, num);
cout << "字符串中整数的个数: " << count << endl;
for (int i = 0; i < count; i++) {
cout << num[i] << ",";
}
cout << endl;
return 0;
}
```
运行结果:
```
字符串中整数的个数: 5
123,456,17960,302,5876,
```
阅读全文