新知

原创 2015年11月19日 11:20:04
#include<stdio.h>
#include<ctype.h>
#include<stdbool.h>
#include<string.h>
#define LENGTH 50
void eatspaces(void);
bool getinteger(int *n);
char *getname(char *name,size_t length);
bool isnewline(void);
int main(void)
{
	int number;
	
	char name[LENGTH]={'\0'};
	printf("enter a sequence of integers and alphabetic names in a single line:\n");
	while(!isnewline())//输入字符,用isnewline函数判断是否结束字符,不是就返回字符到输入流
		if(getinteger(&number))//取读数字,把不是数字部分的字符返回输入流
			printf("integer value:%8d\n",number);
		else if(strnlen_s(getname(name,LENGTH),LENGTH)>0)//取读字母,把非字母部分的字符返回输入流
		
			printf("Name:%s\n",name);
		
		else
		{
			printf("Invalid input.\n");
			return 1;
		}
	}
	return 0;
}
void eatspaces(void)//去空格符,水平制表符等
{
	char ch=0;
	while(isspace(ch=(char)getchar()));
	ungetc(ch,stdin);
}
bool getinteger(int*n)//判断是否为数字,然后根据正负加符号
{
	eatspaces();
	int value=0;
	int sign=1;
	char ch=0;

	if((ch=(char)getchar())=='-')
		sign=-1;
	else if(isdigit(ch))
		value=ch-'0';
	else if(ch!='+')
		{
			ungetc(ch,stdin);
			return false;
		}
	while(isdigit(ch=(char)getchar()))
		value=10*value+(ch-'0');
	ungetc(ch,stdin);
	*n=value*sign;
	return true;
}
char*getname(char*name,size_t length)//储存字母,返回字母
{
	eatspaces();
	size_t count=0;
	char ch=0;
	while(isalpha(ch=(char)getchar()))
		{
			name[count++]=ch;
			if(count==length-1)
				break;
		}
	if(count<length-1)
		ungetc(ch,stdin);
	return name;
}
bool isnewline(void)//判断是否为结束字符,
{
	char ch=0;
	if((ch=(char)getchar())=='\n')
		return true;
	ungetc(ch,stdin);
	return false;
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

新知食APP架构分析--北京食物科技有限公司旗下产品

俗话说不打无准备之仗,这次真是有点懵逼了,建议大家去面试的时候,尤其是去小型互联网公司的时候,如果你想比其他人有竞争力,那么你要研究一下当前他的公司正在开发产品,他们的业务类型是什么样的,比如他们公司...
  • a545415
  • a545415
  • 2017年08月18日 12:43
  • 216

各种新知

cloverETL
  • u012459917
  • u012459917
  • 2014年11月07日 11:50
  • 408

sprintf新知

sprintf :格式化并打印各种数据到字符串。 include  int main( void )   {    char  buffer[200], s[] = "computer", ...
  • FrankAx
  • FrankAx
  • 2017年01月26日 12:12
  • 85

编程新知

语言类型 强/弱类型是指类型检查的严格程度的。 语言有无类型,弱类型和强类型三种。 无类型的不检查,甚至不区分指令和数据; 弱类型的检查很弱,仅能严格的区分指令和数据; 强类型的则严格的在编译...
  • a627573361
  • a627573361
  • 2017年12月11日 21:50
  • 16

新知java

我一直觉得还是应该多学习几门语言的。接触计算机编程也有快三年的时间了。对于我的母语(c语言)的理解其实也不是特别的深,就是会用罢了。因为开发单片机程序要写代码。我的c语言知识也是靠写程序积累的。编程其...
  • vipzhouyu
  • vipzhouyu
  • 2011年07月21日 19:22
  • 149

新知識!!

 http://download.csdn.net/source/2289993 下了!! 非常好! 學了很多新知識!! wcf Ria Services; MVVMlight framework; ...
  • GP_Jennifer
  • GP_Jennifer
  • 2010年04月30日 15:08
  • 153

新知Bak

56.今天学到的东西:①如何配置MyEclipse所使用的JRE版本(右键单击项目名称,在弹出的菜单中选BuildPath,选configure Build Path,选中MyEclipse自带的低版...
  • yang3wei
  • yang3wei
  • 2010年12月24日 21:10
  • 419

旧识新知

1.html标签属性如果不写引号,渲染的时候就会默认添加双引号“ eg: 渲染后就是  2、IE10中兼容模式下required和mutilate是默认有的 3、文件保存时的编码...
  • zchunhe
  • zchunhe
  • 2014年05月07日 20:03
  • 558

电脑新知

1.关于计算机的系统恢复快捷键: 索尼:F10 三星:F4 联想:F11 宏基:F8 方正:F9 戴尔F8 华硕:F9 惠普:F11 进行系统恢复之前要先做备份,再根据备份的镜像来恢...
  • flyheightest
  • flyheightest
  • 2013年06月02日 17:39
  • 619

新知学习之:RFID

   RFID(Radio Frequency Identification)无线射频识别技术,是非接触式自动识别技术的一种。与传统条形码依靠光电效应不同的是,RFID标签无须人工操作,在阅读器的感应...
  • stiwin
  • stiwin
  • 2005年03月02日 15:18
  • 1849
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:新知
举报原因:
原因补充:

(最多只允许输入30个字)