新知

原创 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;
}

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

新知java

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

(复习)数据结构--单调栈--新知训练 (POJ2796,POJ2559,POJ3494,BZOJ1012)

POJ-2796 Feel Good题意: 给出一个长度为n(1

2016 Google I/O新知介绍之 Daydream VR platform

作者 Steven.Zhu 1     背景 1.1  VR元年   2016年被称为「VR元年」,业界对虚拟现实的关注持续升温,Oculus Rift引领了整个行业的风向已...

新知:打喷嚏是鼻子在“系统重启”

诗经中写道“寤言不寐,愿言则嚏”,意思就是说当我们打喷嚏的时候是有人思念我了,打喷嚏在古代就代表着思念。但在我们的文化中对于打喷嚏大多数人都认为是有人在谈话中提到了自己,而且别人提到自己的话语中绝对是...

KD Tree 新知选作(BZOJ 2850)

什么是KDrree一些优质入门文章在这里附上两篇笔者学习kdtree的思路和详细实现思想的优质文章:思路篇传送门 详细篇传送门同时鸣谢为笔者耐心讲解kdtree的神犇:mima_reincarnat...

(新知)数据结构--Treap--模版

Treap是一棵二叉搜索树,只是每个节点多了一个优先级fix,对于每个节点,该节点的优先级小于等于其所有孩子的优先级。 当然,引入优先级fix的目的就是防止BST退化成一条链,从而影响查找效率。 ...

(新知)数据结构--Splay--模板

写了一发splay的模板,在正常的应用中应该是够用了。除了具备splay特有的功能比如区间的分裂与合并,还具有所有treap的功能,同时也可以维护区间的最大值最小值。对于初次学习splay比较有帮助。...

【新知】ICT是什么?

CT是信息、通信和技术三个英文单词的词头组合(Information Communication Technology,简称ICT) 。它是信息技术与通信技术相融合而形成的一个新的概念和新的技术领域。...
  • bluwin
  • bluwin
  • 2012年04月01日 12:36
  • 528
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:新知
举报原因:
原因补充:

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