您的位置:首页 > Web前端

剑指offer:将字符串转化为整形

2014-03-25 20:00 302 查看
我们知道c语言中存在一个函数atoi,就是把字符串转化为整形,现在我们要求不用此函数或者类似的函数写出“字符串转化为整形的函数“。

本题要考虑几种特殊的情况

1、功能测试:输入的字符串表示正数、负数、0

2、边界测试:输入最大的正整数,最小的负整数

3、特殊输入测试:输入字符串为NULL指针,输入空字符串,输入的字符串有非数字字符。

下面是源程序代码:

#include<stdio.h>
#include<string.h>
#include<math.h>
#define MAX 10
int main()
{
char s[MAX]={0};
printf("请输入原始字符串:\n");
gets(s);
int length=strlen(s);
int i,k=0,tag=0;
if(length>=1)
{
for(i=0;i<length;++i)
{
if(s[i]=='-')
{
tag=1;
continue;
}
if(s[i]>='0'&&s[i]<='9')k=k*10+(s[i]-'0');
else
{
printf("你输入的字符串中有非数字字符!\n");
exit(0);
}
}
}
else
{
printf("你输入的字符串为空\n");
exit(0);
}
if(tag==0)printf("转化后的整形为:%d\n",k);
else printf("转化后的整形为:-%d\n",k);
return 0;
}

运行结果截图:









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