按照下述要求分别实现read_line函数:

按照下述要求分别实现read_line函数:
(a)在开始存储输入字符前跳过空白字符。
(b)在读入第一个空白字符时停止。提示:调用isspace函数来检查字符是否为空白字符。
(c)在读入第一个换行符时停止,然后把换行符存储到字符串中。

答:
(a)程序如下:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
char *read_line(char *p);
int main()
{

char sec[20];
read_line(sec);
puts(sec);
system("pause");
exit(0);

}
char *read_line(char *p)
{

char *p1=p;
char ch;
ch=getchar();
while(ch=='\0'||ch==' '||ch=='\t')
	ch=getchar();
*p1=ch;
for(p1++;*(p1-1)!='\n';)
	*p1++=getchar();
*(p1-1)='\0';
return p;

}
(b)程序如下:
#include<stdio.h>
#include<stdlib.h>
char *read_line(char *a);
char isspace(char *p);
#define STR_LEN 20
int main()
{

char sec[STR_LEN+1];
puts("Enter a sentence:");
read_line(sec);
puts(sec);
system("pause");
return 0;

}
char isspace(char *p)
{

*p=getchar();
if(*p=='\0'||*p=='\t'||*p=='\n'||*p==' ')
	return *p='\0';
else return *p;

}
char *read_line(char *a)
{

char *p,ch;
for(p=a;p<a+STR_LEN-1;p++)
		if(ch=isspace(p)=='\0')
			break;
if(p==a+STR_LEN)
	*p='\0';
return a;

}
(c)程序如下:
#include<stdio.h>
#include<stdlib.h>
#define STR_LEN 20
char *read_line(char *a);
int main()
{

char str[STR_LEN+1];
puts("Enter a sentence:");
read_line(str);
puts(str);
system("pause");
return 0;

}
char *read_line(char *a)
{

char ch,*p=a;
scanf("%c",&ch);
while(ch!='\n')
{
	*p++=ch;
	ch=getchar();
}
*p='\n';
*(p+1)='\0';
return a;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值