字符串转化为数字(不使用库函数) |
您所在的位置:网站首页 › c语言将数字字符串转换成数字 › 字符串转化为数字(不使用库函数) |
面试例题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 |