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

来源:互联网 发布:物流信息软件 编辑:程序博客网 时间:2024/05/17 05:11

字符串与数字转换-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++

0 0