C语言atoi()和itoa()函数的实现
2013-07-18 17:21
239 查看
字符串转换为整数:
[b]int myatoi(char *src)[/b]
[b]{
char flag = 0;
int sum = 0;
int i = 0;
int len = strlen(src);
if ( NULL == src){
return 0;
}
if ( src[i] == '-'){
flag = '-';
++i;
}
for ( ; i < len; ++i){
/*判断字符是否合法*/
if ( src[i] < 48 && src[i] > 57){
return p;
}
/*数据求和,注意数值的转换问题stc[i] - 48*/
sum = sum * 10 + src[i] - 48;
}[/b]
[b] /*根据标志位实现返回正确的正负数*/[/b]
[b] if ( flag == '-'){[/b]
[b] return - sum;[/b]
[b] }else{[/b]
[b] return sum;[/b]
[b] }[/b]
[b]}[/b]
整数转换为字符串
[b]char* myitoa(int num,char *str)[/b]
[b]{[/b]
[b] char flag = 0;[/b]
[b] int i = 0, count = 0, j = 0;[/b]
[b] /*参数监测*/[/b]
[b] if ( NULL = str){[/b]
[b] return NULL;[/b]
[b] }[/b]
[b] /*判断数值的正负,设置对应的符号*/[/b]
[b] if ( num < 0){[/b]
[b] str[ i++] = '-';[/b]
[b] /*同时要对数值取绝对值,保证后面取余整数操作正常*/[/b]
[b] num = -num;[/b]
[b] }[/b]
[b] while ( num / 10){[/b]
[b] /*count用来保存实际的数字个数,便于后期的顺序调换*/[/b]
[b] ++count;[/b]
[b] /*实际保存的顺序为反序列*/[/b]
[b] str[i++] = num%10 + 48;[/b]
[b] num /= 10;[/b]
[b] }[/b]
[b] /*字符串结束符*/[/b]
[b] str[i] = '\0';[/b]
[b] /*实现数据的较好操作*/[/b]
[b] if ( str[ 0 ] == '-'){[/b]
[b] i = 1;[/b]
[b] }[/b]
[b] /*实际交换的小标区间为i~~j*/[/b]
[b] j = count + i - 1;[/b]
[b] for ( ; i < j ; ++i, --j){[/b]
[b] /*数据的较好操作*/[/b]
[b] str[i ] = str[i ] + str[j];[/b]
[b] str[j] = str[i] - str[j];[/b]
[b] str[i] = str[i] - str[j];[/b]
[b] }[/b]
[b] /*返回实际的字符串*/[/b]
[b] return str;[/b]
[b]}[/b]
[b]int myatoi(char *src)[/b]
[b]{
char flag = 0;
int sum = 0;
int i = 0;
int len = strlen(src);
if ( NULL == src){
return 0;
}
if ( src[i] == '-'){
flag = '-';
++i;
}
for ( ; i < len; ++i){
/*判断字符是否合法*/
if ( src[i] < 48 && src[i] > 57){
return p;
}
/*数据求和,注意数值的转换问题stc[i] - 48*/
sum = sum * 10 + src[i] - 48;
}[/b]
[b] /*根据标志位实现返回正确的正负数*/[/b]
[b] if ( flag == '-'){[/b]
[b] return - sum;[/b]
[b] }else{[/b]
[b] return sum;[/b]
[b] }[/b]
[b]}[/b]
整数转换为字符串
[b]char* myitoa(int num,char *str)[/b]
[b]{[/b]
[b] char flag = 0;[/b]
[b] int i = 0, count = 0, j = 0;[/b]
[b] /*参数监测*/[/b]
[b] if ( NULL = str){[/b]
[b] return NULL;[/b]
[b] }[/b]
[b] /*判断数值的正负,设置对应的符号*/[/b]
[b] if ( num < 0){[/b]
[b] str[ i++] = '-';[/b]
[b] /*同时要对数值取绝对值,保证后面取余整数操作正常*/[/b]
[b] num = -num;[/b]
[b] }[/b]
[b] while ( num / 10){[/b]
[b] /*count用来保存实际的数字个数,便于后期的顺序调换*/[/b]
[b] ++count;[/b]
[b] /*实际保存的顺序为反序列*/[/b]
[b] str[i++] = num%10 + 48;[/b]
[b] num /= 10;[/b]
[b] }[/b]
[b] /*字符串结束符*/[/b]
[b] str[i] = '\0';[/b]
[b] /*实现数据的较好操作*/[/b]
[b] if ( str[ 0 ] == '-'){[/b]
[b] i = 1;[/b]
[b] }[/b]
[b] /*实际交换的小标区间为i~~j*/[/b]
[b] j = count + i - 1;[/b]
[b] for ( ; i < j ; ++i, --j){[/b]
[b] /*数据的较好操作*/[/b]
[b] str[i ] = str[i ] + str[j];[/b]
[b] str[j] = str[i] - str[j];[/b]
[b] str[i] = str[i] - str[j];[/b]
[b] }[/b]
[b] /*返回实际的字符串*/[/b]
[b] return str;[/b]
[b]}[/b]
相关文章推荐
- C语言itoa()函数和atoi()函数详解(整数转字符C实现)
- C语言atoi()和itoa()函数的实现
- C语言itoa()函数和atoi()函数详解(整数转字符C实现)
- C语言itoa()函数和atoi()函数详解(整数转字符C实现)
- C语言itoa()函数和atoi()函数详解(整数转字符C实现)
- C语言itoa()函数和atoi()函数详解(整数转字符C实现)
- C语言itoa()函数和atoi()函数详解(整数转字符C实现)
- C语言itoa()函数和atoi()函数详解(整数转字符C实现)
- C语言itoa()函数和atoi()函数详解(整数转字符C实现)
- C语言itoa()函数和atoi()函数详解(整数转字符C实现)
- C语言itoa()函数和atoi()函数详解(整数转字符C实现)
- C语言itoa()函数和atoi()函数详解(整数转字符C实现)
- C语言itoa()函数和atoi()函数详解(整数转字符C实现)
- 【转载】C语言itoa()函数和atoi()函数详解(整数转字符C实现)
- C语言itoa()函数和atoi()函数详解(整数转字符C实现)
- C语言itoa()函数和atoi()函数详解(整数转字符C实现)
- C语言itoa()函数和atoi()函数详解(整数转字符C实现)
- C语言itoa()函数和atoi()函数详解(整数转字符C实现)
- C语言itoa()函数和atoi()函数详解(整数转字符C实现)
- C语言itoa()函数和atoi()函数详解(整数转字符C实现)