您的位置:首页 > 编程语言 > C语言/C++

[C/C++笔面试]不使用库函数将字符串转换为整数

2016-08-27 12:59 337 查看
与数字转换为字符串类似,C/C++提供了几个标准的库函数,可以将字符串转换为任意类型(整型,长整型,浮点型)的数字。下面列举其函数

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;
}


运行结果



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐