题目描述
输入一个字符串,判断这个字符串是否一个完全整数值的字符串,例如输入"1234",那么表示整数1234,输入"12a3"就表示只是一个字符串,不是一个整数
要求编写函数isNumber,参数是一个字符指针,返回值是整数类型
如果字符串表示一个整数,则计算出这个整数并且返回
如果字符串不是表示一个整数,则返回-1
主函数必须调用isNumber来判断字符串,不能使用任何C 自带或第三方的类似函数
输入
输入t表示有t个测试实例
每行输入一个字符串
依次输入t行
输出
每行输出判断结果
输入样例1
3 1234 567a 0890
输出样例1
1234 -1 890
思路分析
题目要求编写函数isNumber,参数是一个字符指针,返回值是整数类型。
那我们需要在函数中来完成计算整数和或返回-1的操作。
那就直接挨个判断字符串,碰到不是数字的就直接返回-1输出-1完事,如果是数字,那就减去0的ACII码,和上一个乘以十再加起来完事。
代码
代码语言:javascript复制#include<iostream>
#include<string>
using namespace std;
int isNumber(char *s)
{
int i,value=0;
for(i=0;s[i];i )
{
if(!(s[i]<='9'&&s[i]>='0'))
return -1;
value=value*10 s[i]-'0';
}
return value;
}
int main()
{
int t;
char s[21];
cin>>t;
while(t--)
{
cin>>s;
cout<<isNumber(s)<<endl;
}
}