我们知道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