1.将字符串类型转换成整形,未考虑str == NULL
int strToInt(char *str){
int data = 0;
const char *ptr = str;
if(*str == '-'){
str ++;
}
while(*str != '\0'){
if(*str < '0' || *str > '9'){
break;
}
data = data * 10 + (*str - '0');
str ++;
}
if(*ptr == '-'){
data =-data;
}
return data;
}
2.将整形转换成字符串
/**
*实现字符串的反转,ptrBegin和ptrEnd分别指向开始和结束的字符,不包括‘\0’
e.g. 原来的字符"1234" ptrBegin指向‘1’, PtrEnd指向'4'
*/
void reversalStr(char *ptrBegin, char *ptrEnd){
char temp;
while(ptrBegin < ptrEnd){
temp = *ptrBegin;
*ptrBegin = *ptrEnd;
*ptrEnd = temp;
ptrBegin++;
ptrEnd --;
}
}
void intToStr(int data, char *str){
int flag = 0;
char *ptr = str;
if(data < 0){
flag = 1;
data = -data;
}
if(data == 0){
*str = '0';
str ++;
}
while(data != 0){
*str = data % 10 + '0';
data /= 10;
str++;
}
if(flag){
*str = '-';//是负数的话,加个符号在末尾
str++;
}
//字符反转
reversalStr(ptr, str-1);
*str = '\0';
}