if(str[0]=='-' && i==1) return 1;// i==1什么意思?

#include<stdio.h>#include<string.h>intisreal(constchar*str){inti=0;intslen=strlen(str... #include<stdio.h>
#include<string.h>
int isreal(const char *str)
{
int i=0;
int slen=strlen(str);//获取字符串长度
int jl0=0,jl1=0; //jl0记录 - 号个数 jl1记录 . 个数
for(i=0;i<slen;i++)//循环
{
if((str[i]<'0' || str[i]>'9') && str[i]!='-' && str[i]!='.') return 1;//不是数字 不是负号 不是小数点 肯定不是是实数
else if(str[i]=='-' )//如果是符号
{
jl0++;//自加一
if(jl0>1) return 1;//有多个负号 肯定不是是实数
if(i!=0) return 1;//负号不在首位 肯定不是是实数
}
else if(str[i]=='.' )//如果是小数点
{
jl1++;//自加一
if(jl1>1) return 1;//有多个 . 肯定不是是实数
if(i==0 || i==slen-1) return 1;//小数点在首位或者末位 肯定不是是实数
if(str[0]=='-' && i==1) return 1;//小数点与负号相邻 肯定不是是实数
}
}

return 0;
}
int main()
{
char str[128];
scanf("%s",str);
if(isreal(str)==0)printf("%s is real!\n",str);
else printf("%s is not real!\n",str);
return 0;
}
展开
 我来答
furious_tauren
2011-12-03 · TA获得超过4057个赞
知道大有可为答主
回答量:1913
采纳率:100%
帮助的人:815万
展开全部
if(str0=='-' && i==1) return 1;
如果字符串的第一个字符是负号并且i等于1就返回1。i等于1说明小数点是字符串的第二个字符
也就是-.xxx的形式
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式