您的位置:首页 > 编程语言 > C语言/C++

字符串与数字转换-C语言

2016-01-16 00:08 309 查看

字符串与数字转换-C语言

/**
* by: 小林
* time: 2016-01-15
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

/*字符串转换为整数*/
int myAtoi(char *array)
{
int result = 0;
char *p = array;
if(*p == '-')
{
p++;
}
while(*p != '\0')       // 遍历字符
{
int i = *p-'0';
if(i>=0 && i<=9)    // 判断字符的有效性,可能出现字母
{
result = result*10 + i;
}
p++;                // 指针后移
}
if(*array == '-')
{
result = -result;
}
return result;
}

/*整数转换为字符串*/
void myItoa(int n, char *array)
{
int num = n;
char *p = array;
if(num < 0)     // 负数处理
{
num = -num;
*p++ = '-';
}
do              // 用do-while是为了处理出现0 的情况
{
*p++ = '0'+num%10;
num = num/10;
}while(num);
*p = '\0';
int i=0, len = strlen(array);
if(n<0)
{
i=1;
len++;
}
for( ; i<len/2; i++)    // 倒置字符串
{
char ch = array[i];
array[i] = array[len-i-1];
array[len-i-1] = ch;
}
}

int main(void)
{
char str[10] = "-1234";
int r = myAtoi(str);
printf("%d\n", r);

myItoa(9876, str);
printf("%s\n", str);
return EXIT_SUCCESS;
}


运行结果



编译环境:Dev-C++
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息