#include <iostream>
#include <stdio.h>
#include <cstring>
#include <string>
using namespace std;
int strToInt(char*pBegin,char*pEnd);
int* str2num(char* str);
void paixu(int *ptr);
int strToInt(char*pBegin,char*pEnd)
{
char* p = pBegin;
int sum = 0;
int neg = 1;
if(*p == '+')
{
++p;
}
else if(*p =='-')
{
neg = -1;
++p;
}
else if(p > pEnd)
{
return -1;
}
do
{
if(*p<'0' || *p >'9')
{
return -1;
}
sum = sum*10 +*p-'0';
}while(p++ != pEnd);
sum *= neg;
return sum;
}
int* str2num( char* str)
{
if(str == NULL)
return NULL;
int numData = 0;
char* pBegin = str;
char* pEnd = str;
printf("2");
while(*pEnd !='\0')
{
if(*pEnd ==',')
++numData;
++pEnd;
}
printf("numData is:%d\n",numData);
pEnd =str;
int arr[numData];
int i = 0;
numData++;
printf("4");
while(*pBegin !='\0')
{
if(*pBegin ==',')
{
pBegin++;
pEnd++;
}
else if(*pEnd ==','|| *pEnd =='\0')
{
int num = strToInt(pBegin,--pEnd);
if(i!=numData)
{
arr[i] = num;
++i;
}
printf("num is: %d\n",num);
pBegin = ++pEnd;
}
else
{
pEnd++;
}
}
arr[i]='\0';
int* intPtr = arr;
printf("5");
int j;
//for(j=0;j<i;j++)
while(*intPtr !='\0')
printf("arr数组元素为:%d\t",*intPtr++);
printf("\n");
intPtr = arr;
return intPtr;
}
void paixu(int* ptr)
{
while(*ptr !='\0')
printf("ptr is:%d\n",*ptr++);
int i,j,min,temp;
int len = 0;
int* p = ptr;
do
{
printf("bupt数组元素为:%d\t",*p);
++p;
len++;
} while(*p !='\0');
printf("len is:%d\n",len);
for(i=0;i<len;i++)
{
min = i;
for(j=i+1;j<len;j++)
{
if(ptr[j]<ptr[min])
min = j;
}
if(i!=min)
{
temp = ptr[min];
ptr[min] = ptr[i];
ptr[i] = temp;
}
}
for(i=0;i<len;i++)
printf("数组为:%d\t",ptr[i]);
}
int main()
{
printf("main");
char* str =(char*)"22,11,5,10,99";
int* ptr = NULL;
int len = 0,i,j,min,temp;
ptr = str2num(str);
int* q = ptr;
while(*q !='\0')
{
printf("ptr is:%d\n",*q++);
len++;
}
//调用排序
for(i=0;i<len;i++)
{
min = i;
for(j=i+1;j<len;j++)
{
if(ptr[j]<ptr[min])
min = j;
}
if(i!=min)
{
temp = ptr[min];
ptr[min] = ptr[i];
ptr[i] = temp;
}
}
for(i=0;i<len;i++)
printf("数组为:%d\t",ptr[i]);
return 0;
}
#include <stdio.h>
#include <cstring>
#include <string>
using namespace std;
int strToInt(char*pBegin,char*pEnd);
int* str2num(char* str);
void paixu(int *ptr);
int strToInt(char*pBegin,char*pEnd)
{
char* p = pBegin;
int sum = 0;
int neg = 1;
if(*p == '+')
{
++p;
}
else if(*p =='-')
{
neg = -1;
++p;
}
else if(p > pEnd)
{
return -1;
}
do
{
if(*p<'0' || *p >'9')
{
return -1;
}
sum = sum*10 +*p-'0';
}while(p++ != pEnd);
sum *= neg;
return sum;
}
int* str2num( char* str)
{
if(str == NULL)
return NULL;
int numData = 0;
char* pBegin = str;
char* pEnd = str;
printf("2");
while(*pEnd !='\0')
{
if(*pEnd ==',')
++numData;
++pEnd;
}
printf("numData is:%d\n",numData);
pEnd =str;
int arr[numData];
int i = 0;
numData++;
printf("4");
while(*pBegin !='\0')
{
if(*pBegin ==',')
{
pBegin++;
pEnd++;
}
else if(*pEnd ==','|| *pEnd =='\0')
{
int num = strToInt(pBegin,--pEnd);
if(i!=numData)
{
arr[i] = num;
++i;
}
printf("num is: %d\n",num);
pBegin = ++pEnd;
}
else
{
pEnd++;
}
}
arr[i]='\0';
int* intPtr = arr;
printf("5");
int j;
//for(j=0;j<i;j++)
while(*intPtr !='\0')
printf("arr数组元素为:%d\t",*intPtr++);
printf("\n");
intPtr = arr;
return intPtr;
}
void paixu(int* ptr)
{
while(*ptr !='\0')
printf("ptr is:%d\n",*ptr++);
int i,j,min,temp;
int len = 0;
int* p = ptr;
do
{
printf("bupt数组元素为:%d\t",*p);
++p;
len++;
} while(*p !='\0');
printf("len is:%d\n",len);
for(i=0;i<len;i++)
{
min = i;
for(j=i+1;j<len;j++)
{
if(ptr[j]<ptr[min])
min = j;
}
if(i!=min)
{
temp = ptr[min];
ptr[min] = ptr[i];
ptr[i] = temp;
}
}
for(i=0;i<len;i++)
printf("数组为:%d\t",ptr[i]);
}
int main()
{
printf("main");
char* str =(char*)"22,11,5,10,99";
int* ptr = NULL;
int len = 0,i,j,min,temp;
ptr = str2num(str);
int* q = ptr;
while(*q !='\0')
{
printf("ptr is:%d\n",*q++);
len++;
}
//调用排序
for(i=0;i<len;i++)
{
min = i;
for(j=i+1;j<len;j++)
{
if(ptr[j]<ptr[min])
min = j;
}
if(i!=min)
{
temp = ptr[min];
ptr[min] = ptr[i];
ptr[i] = temp;
}
}
for(i=0;i<len;i++)
printf("数组为:%d\t",ptr[i]);
return 0;
}