描述 给定一个字符串,请将其中的所有数字串提取,并将每个数字串作为整数看待(假设可以用int 表示),按从小到大顺序输出结果,输出的整数之间以逗号间隔。如果没有数字,则输出0;例如:*1234.345#6781ad9jk81-11101?aght88ir09kp,其中的整数包括:1234,345,6781,9,81,11101,88,9,从小到大排序后,应该输出: 9,9,81,88,345,1234,6781,11101
输入 在一行内输入一串符号,长度不大于300。输入数据保证提取的整数不超过109。 输出 从小到大排序的整数序列,如果没有数字,则输出0; 样例输入 *1234.345#6781ad9jk81-11101?aght88ir09kp 样例输出 9,9,81,88,345,1234,6781,11101
解题
分解后排序 注意不含有数字的情况 注意我这里复杂了,转换为整数的时候完全可以再循环里做
代码
#include
#include
#include
using namespace std;
char s[350];//字符串
int temp[10];//临时分解数字
int ans[300];//答案
int toInt(int n){//转换为整数
int num=0;
for (int i = 0; i
cin>>s;
int len=strlen(s);
int have=0;
for (int i = 0; i //分割
temp[j++]=s[i]-'0';
i++;
}
if(j>0){
ans[have++]=toInt(j);//转换
}
}
sort(ans,ans+have);//排序
for (int i = 0; i |