2016年内蒙古大学892真题解析(持续更新)

    科技2026-06-04  12

    6、(15分)编写程序,从键盘输入一个字符串,内有数字和非数字字符,如xy12ab93?5786$,连续的数字成为一个整数。例如:上述字符串中有3个整数:12、93和5786。统计字符串中有多少个整数,并依次输出。

    解题思路:

    C++中的字符串可以使用下标直接访问其中的字符。我的思路是设置两个指针,其中一个作为遍历字符串的指针i,另一个是用来探测数字的指针j,即当用i遍历字符串碰到数字时,使用j开始探测数字并输出,最终获取字符串内的整数并输出。

    代码如下:

    #include <iostream> using namespace std; int main(){ string string1; cin >> string1; int j=0; int num =0; for (int i = 0;i<string1.length();i++){ if (48<=string1[i] && string1[i]<=57){ j=i; } while (48<=string1[i] && string1[i]<=57){ cout << string1[i]; j++; i++; if (48>string1[i] || string1[i]>57){ cout << " "; num++; } } i=j++; } cout <<"\n"<< num << endl; }

    输入:

    ab12?cd95##5786$

    输出:

    12 95 5786 3
    Processed: 0.011, SQL: 10