我们知道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;
}
运行结果截图:
剑指offer:将字符串转化为整形,布布扣,bubuko.com
原文:http://blog.csdn.net/litianpeng1991/article/details/22092339