#include "stdafx.h"
#include "string.h"
#include<iostream>
using namespace std;
int main(int argc, char* argv[])
{
cout<<"请选择你要的排序方式:"<<endl;
cout<<"1.冒泡排序"<<endl;
cout<<"2.选择排序"<<endl;
int choice;
cin>>choice;
cin.get();
cout<<"请输入需要排序的数字:"<<endl;
const int max_size=99;
char str[max_size];
cin.getline(str,max_size);
int array[max_size],i,count;
count=strlen(str)-1;
for(i=0;i<count;i++)
array[i]=str[i]-'0';
for(i=0;i<count;i++)
cout<<array[i] ;
system("PAUSE");
return 0;
}
请问错在哪里?
// 代码修改了,修改的地方都加了注释,看不懂再问我
// 其实你这个写法只能取到个位数字,如果是两位以上的数字,用这样的方法就不行了
看懂了,知道错在哪里了;
请问关于字符数组转换成整型数组有没有更简单的方法?
char c[5] = "888";
int m = atoi(c);//只能转化成整型,不能转化成数组,我想要数组,因为接下来还要排序。
可是这样出错:
嗯,这个就是单独转的。
如果你想把型如“1 23 55 88”转成[1,23,55,88]
需要把字符数组先转成二维字符数组,即["1", "23", "55", "88"]
然后再把每一个字符串用atoi转成int型。
当然,如果你们的内容要求没有那么严格,只做个位的减法也可以了。
因为这个转化的过程,其实更多考查的是对字符数组的使用。