[C/C++笔面试]不使用库函数将字符串转换为整数
2016-08-27 12:59
337 查看
与数字转换为字符串类似,C/C++提供了几个标准的库函数,可以将字符串转换为任意类型(整型,长整型,浮点型)的数字。下面列举其函数
atof();将字符串转换为双精度浮点型值
atoi();将字符串转换为整型值
atol();将字符串转换为长整型
strtod();将字符串转换为双精度浮点型值,并报告不能被转换的所有剩下数字
strtol();将字符串转换为长整型值,并报告不能被转换的所有剩下的数字
strtoul();将字符串转换为无符号长整型,并报告不能被转换的所有剩下的数字
笔试面试的时候我们会遇到这样的题,不使用库函数将字符串转换为整数,如下
运行结果
atof();将字符串转换为双精度浮点型值
atoi();将字符串转换为整型值
atol();将字符串转换为长整型
strtod();将字符串转换为双精度浮点型值,并报告不能被转换的所有剩下数字
strtol();将字符串转换为长整型值,并报告不能被转换的所有剩下的数字
strtoul();将字符串转换为无符号长整型,并报告不能被转换的所有剩下的数字
笔试面试的时候我们会遇到这样的题,不使用库函数将字符串转换为整数,如下
/********************************************************* - Copyright (C): 2016 - File name : str2int.c - Author : - Zxn - - Date : 2016年08月27日 星期六 12时23分20秒 - Description : * *******************************************************/ #include <stdio.h> int str2int(char *str) { int temp = 0; //ptr保存str字符串开头 const char *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; } int main() { int num = 0; char str[10] = {0}; printf("please input string:"); scanf("%s", str); num = str2int(str); printf("output:%d\n", num); return 0; }
运行结果
相关文章推荐
- [C/C++笔面试]不使用库函数将整数转换为字符串
- 将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0
- 将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0
- 不使用库函数将整数转换为字符串
- 不使用库函数将整数转换为字符串或将字符串转换为整数
- 不使用库函数将整数转换为字符串或将字符串转换为整数
- 不使用用库函数将整数转换为字符串
- 不使用库函数将整数转换为字符串或将字符串转换为整数
- 不使用c的任何库函数 实现字符串到整数的转换 整数到字符串的转换
- 《剑指offer》-将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数
- 将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0
- 将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数
- 算法:将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。
- 【从零单排之微软面试100题系列】20之把字符串转换成整数
- C/C++面试之算法系列--从“整数转换成字符串”看算法的联想
- 不使用库函数将整数转化为字符串
- 【剑指Offer面试编程题】题目1508:把字符串转换成整数--九度OJ
- 挑战面试编程:字符串转换为整数
- 字符串转换成整数 【微软面试100题 第二十题】
- 微软面试100题之20题:输入一个表示整数的字符串,把该字符串转换成整数并输出