字符串转化为数字(不使用库函数)

您所在的位置:网站首页 c语言将数字字符串转换成数字 字符串转化为数字(不使用库函数)

字符串转化为数字(不使用库函数)

2023-12-15 19:24| 来源: 网络整理| 查看: 265

面试例题3:使用库函数将字符串转换为数字。

考点:C库函数中字符串转换为数字的使用。

出现频率:★★★★

解析

与上节数字转换为字符串类似,C/C++语言提供了几个标准库函数,可以将字符串转换为任意类型(整型、长整型、浮点型等)。以下列举了各函数的方法及其说明。

atof():将字符串转换为双精度浮点型值。

atoi():将字符串转换为整型值。

atol():将字符串转换为长整型值。

strtod():将字符串转换为双精度浮点型值,并报告不能被转换的所有剩余数字。

strtol():将字符串转换为长整值,并报告不能被转换的所有剩余数字。

strtoul():将字符串转换为无符号长整型值,并报告不能被转换的所有剩余数字。

以下程序演示如何使用atoi ()函数和atof ()函数。

 

1    # include 2    # include 3    4    int main () 5    { 6        int num_int; 7        double num_double; 8        char str_int[30] = "435";         //将要被转换为整型的字符串 9        char str_double[30] = "436.55";  //将要被转换为浮点型的字符串 10   11       num_int = atoi(str_int);          //转换为整型值 12       num_double = atof(str_double);  //转换为浮点型值 13   14       printf("num_int: %d/n", num_int); 15       printf("num_double: %lf/n", num_double); 16   17       return 0; 18   }

输出结果:

num_int: 435 num_double: 436.550000

面试例题4:不使用库函数将字符串转换为数字。

考点:字符串转换为数字时,对相关ASCII码的理解。

出现频率:★★★★

解析

程序代码如下:

1    #include 2    using namespace std; 3    4    int str2int(const char *str) 5    { 6        int temp = 0; 7        const char *ptr = str;  //ptr保存str字符串开头 8    9        if (*str == '-' || *str == '+')  //如果第一个字符是正负号, 10       {                      //则移到下一个字符 11           str++; 12       } 13       while(*str != 0) 14       { 15           if ((*str < '0') || (*str > '9'))  //如果当前字符不是数字 16           {                       //则退出循环 17               break; 18           } 19           temp = temp * 10 + (*str - '0'); //如果当前字符是数字则计算数值 20           str++;      //移到下一个字符 21       }    22       if (*ptr == '-')     //如果字符串是以"-"开头,则转换成其相反数 23       { 24           temp = -temp; 25       } 26   27       return temp; 28   } 29   30   int main() 31   { 32       int n = 0;    33       char p[10] = ""; 34   35       cin.getline(p, 20);   //从终端获取一个字符串 36       n = str2int(p);      //把字符串转换成整型数 37       38       cout


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3