【字符串】字符串转数字

题目:将一个字符串转换成数字。例如:"123"-->123,   "71.02"-->71.02.

方法一,直接调用库函数atoi(const char*) 和atof(const char*)

    # include <stdio.h>

    # include <stdlib.h>

   

    int main ()

    {

        int num_int;

        double num_double;

        char str_int[30] = "435";         //将要被转换为整型的字符串

        char str_double[30] = "436.55";  //将要被转换为浮点型的字符串

  

       num_int = atoi(str_int);          //转换为整型值

       num_double = atof(str_double);  //转换为浮点型值

  

       printf("num_int: %d\n", num_int);

       printf("num_double: %lf\n", num_double);

  

       return 0;

   }

输出结果:

num_int: 435

num_double: 436.550000

方法二,自己实现

 int str2int(const char *str)

    {

        int temp = 0;

        const char *ptr = str;  //ptr保存str字符串开头

   

        if (*str == '-' || *str == '+')  //如果第一个字符是正负号,

       {                      //则移到下一个字符

           str++;

       }

       while(*str != 0)

       {

           if ((*str < '0') || (*str > '9'))  //如果当前字符不是数字

           {                       //则退出循环

               break;

           }

           temp = temp * 10 + (*str - '0'); //如果当前字符是数字则计算数值

           str++;      //移到下一个字符

       }   

       if (*ptr == '-')     //如果字符串是以“-”开头,则转换成其相反数

       {

           temp = -temp;

       }

  

       return temp;

   }

猜你喜欢

转载自blog.csdn.net/sinat_38972110/article/details/80111319
今日推荐