《c语言入门经典》Ivor Horton第十章练习题4

//习题10.4 定义一个函数,使用getchar()函数从stdin中读入一个字符串,
//这个字符串用特定的字符中止,这个特定的终止字符作为第三个变元
//传给这个函数。因此,函数的原型如下:
//      char *getstring(char *buffer,size_t buffer,char end_char);
//返回值是一个指针,它是这个函数的第一变元。编写一个程序,使用这个函
//数从键盘上读取并输出5个以冒号终止的字符串。如果buffer满,且没有找到
//end_char,函数就输出一个错误消息。
#include<stdio.h>
char *getstring(char *buffer,size_t buffer_size,char end_char);
#define max_size 100
#define string_count 5
int main(void)
{
	
	char buffer[max_size];
	printf("\nread from the keyboard and output 5 colon_terminated string ");
	for(int i=0;i<string_count;i++)
	{
		
		printf("\neter the colon_terminated string:\n");
		if(!getstring(buffer,max_size,':'))
		{
			printf("enter error");
			continue;
		}
		printf("\nyour enter is :%s\n",buffer);
		
	}
	return 0;
}
char *getstring(char *buffer,size_t buffer_size,char end_char)
{
	size_t k=0;
	while((buffer[k++]=getchar())!=end_char)
	{
		if(k>=buffer_size)
		{
			printf("\nerror");
			return NULL;
		}
	}
	fflush(stdin);
	buffer[k-1]='\0';

	return buffer;
}

你可能感兴趣的:(编程,C语言,存储,buffer)