| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 7573 人关注过本帖
标题:判断输入是否是数字
只看楼主 加入收藏
chaos
Rank: 1
等 级:新手上路
帖 子:59
专家分:0
注 册:2004-6-10
收藏
 问题点数:0 回复次数:12 
判断输入是否是数字
判断输入是否是数字,如果不是重新输入 比如123可以,2k就要求重新输入
搜索更多相关主题的帖子: 数字 判断 输入 
2004-06-25 01:46
jeremydomett
Rank: 2
等 级:新手上路
威 望:3
帖 子:312
专家分:0
注 册:2004-6-10
收藏
得分:0 

判断输入数的ASCII 码是否在48~~57 之间...如果不是就重新输入.


热爱编程........永不放弃.........
2004-06-25 07:44
天使预备役
Rank: 2
等 级:论坛游民
威 望:3
帖 子:670
专家分:10
注 册:2004-4-6
收藏
得分:0 

那如果是有正负号,或小数点那???

都的判断!!!

还的判断一些东西!


差点把你忘了...
2004-06-25 08:34
chaos
Rank: 1
等 级:新手上路
帖 子:59
专家分:0
注 册:2004-6-10
收藏
得分:0 
以下是引用天使预备役在2004-06-25 08:34:40的发言:

那如果是有正负号,或小数点那???

都的判断!!!

还的判断一些东西!

对的,所以很麻烦的

2004-06-25 11:00
Knocker
Rank: 8Rank: 8
等 级:贵宾
威 望:47
帖 子:10454
专家分:603
注 册:2004-6-1
收藏
得分:0 
关键在于你是用什么变量来接收输入的,用char?用int?用double?

九洲方除百尺冰,映秀又遭蛮牛耕。汽笛嘶鸣国旗半,哀伤尽处是重生。     -老K
治国就是治吏。礼义廉耻,国之四维。四维不张,国之不国。   -毛泽东
2004-06-25 13:24
chaos
Rank: 1
等 级:新手上路
帖 子:59
专家分:0
注 册:2004-6-10
收藏
得分:0 

其实是这样的,我想在这段代码里面判断输入的id是不是数字,name是不是字母

#include<stdio.h>

struct student { int id; char name[30]; }str[50]; void main() { char flag = 'n'; int i = 0; do { printf("id\n"); scanf("%d", &str[i].id); //这里判断输入是不是数字,不是的话重新输入,是的话往下

printf("name\n"); scanf("%s", str[i].name);

//这里判断输入是不是字母,不是的话重新输入,是的话往下 i ++; printf("continue?(y/n)"); scanf(" %c", &flag); }while(flag == 'y' || flag == 'Y'); }

[此贴子已经被作者于2004-06-26 16:01:10编辑过]


2004-06-26 14:26
jiely
Rank: 1
等 级:新手上路
帖 子:106
专家分:0
注 册:2004-5-15
收藏
得分:0 
isdigit() 判断参数是否为0~9之间的数字,在ctype.h

我的爱好:C和数据库!正在学VC++ 我的QQ:345895839,有共同爱好的加我!期待着与你共同进步!
2004-06-26 14:52
chaos
Rank: 1
等 级:新手上路
帖 子:59
专家分:0
注 册:2004-6-10
收藏
得分:0 
这个函数怎么用呢?可否给个简单的例子

2004-06-26 18:58
Knocker
Rank: 8Rank: 8
等 级:贵宾
威 望:47
帖 子:10454
专家分:603
注 册:2004-6-1
收藏
得分:0 

#include<stdio.h> int Get_id(char*str); struct student { int id ; char name[30]; } str[50]; void main() { char flag='n',tem[6]; int i=0,id1 ; do { while(1) { printf("id\n"); fflush(stdin); gets(tem); //注意这里,gets是不检查输入是否越界,要另行处理 tem[5]='\0'; if(str[i].id=Get_id(tem))break ; printf("有错!\n"); } /*scanf("%d",&str[i].id);*/ printf("name\n"); scanf("%s",str[i].name);//这里比较简单地处理可以用"%[a-z]",也可以象上面的Get_id()一样处理。 i++; printf("continue?(y/n)"); scanf(" %c",&flag); } while(flag=='y'||flag=='Y'); }

int Get_id(char*str) { int a=0 ; while(*str) { if(*str>='0'&&*str<='9')a*=10,a+=*str-48 ; else return 0 ; str++; } return a ; }


九洲方除百尺冰,映秀又遭蛮牛耕。汽笛嘶鸣国旗半,哀伤尽处是重生。     -老K
治国就是治吏。礼义廉耻,国之四维。四维不张,国之不国。   -毛泽东
2004-06-27 20:38
chaos
Rank: 1
等 级:新手上路
帖 子:59
专家分:0
注 册:2004-6-10
收藏
得分:0 

scanf("%s",str[i].name);//这里比较简单地处理可以用"%[a-z]",也可以象上面的Get_id()一样处理。

谢谢,用Get_id()的方法我会了,用"%[a-z]"是什么意思?


2004-06-27 23:53
快速回复:判断输入是否是数字
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.027202 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved