1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > 习题 6.16 输入一个字符串 内有数字和非数字字符 例如: a123x456 17960? 302t

习题 6.16 输入一个字符串 内有数字和非数字字符 例如: a123x456 17960? 302t

时间:2023-07-03 07:29:41

相关推荐

习题 6.16 输入一个字符串 内有数字和非数字字符 例如: a123x456 17960? 302t

习题 6.16 输入一个字符串,内有数字和非数字字符,例如: a123x456 17960? 302tab5876将其中连续的数字作为一个整数,依次存放到一数组a中。例如,123存入在a[0],456存放在a[1]……统计共有多少整数,并输出这些数。

代码:

#include<iostream>using namespace std;int main(){char arr[50];int a[20];int i,j,n,count,count_a;bool flag;cout << "请输入字符串:" << endl;cin.get(arr,50);for (i = 0; i != 50; ++i)//得到输入字符个数{if (arr[i] == '\0'){break;}}n = i;for (i = 0; i != 20; ++i) //置数组a[20]中空值为0{a[i] = 0;}for (i = 0 , flag = true,count = 0, count_a = 0; i != n ; ++i){if (arr[i] >= '0' && arr[i] <= '9'){++count; //记每个数的位数flag = true;}else{flag = false;}if ( count != 0 && flag == false) {for (j = 0; j < count; ++j){a[count_a] += int((arr[i - j - 1])-48) * pow(10, j); //存每一段数于数组a[20]中}++count_a;count = 0;}else if (count != 0 && i == (n - 1)) //数段位于字符串末尾的特殊情况{for (j = 0; j < count; ++j){a[count_a] += int((arr[i - j]) - 48) * pow(10, j); //存每一段数于数组a[20]中}++count_a;count = 0;}}for (i = 0; i != 20; ++i){if (a[i] != 0){cout << a[i] << endl;}}return 0;}

习题 6.16 输入一个字符串 内有数字和非数字字符 例如: a123x456 17960? 302tab5876将其中连续的数字作为一个整数 依次存放到一数组a中。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。