C语言程序设计初步(简单的文字处理)

这篇博客探讨了C语言中字符的输入与输出,包括使用getchar()和putchar()处理单个字符,通过循环处理多个字符,统计字符个数以及特定字符出现的次数。此外,还介绍了如何消除文本中的多余空格,实现连续空格变为一个空格的转换。内容涵盖了字符处理的基础和实用技巧。
摘要由CSDN通过智能技术生成

简单的文字处理

单个字符的输入输出

字符数据用ASCll码表表示相应的字符在存储上存储的是相应的ASCll码
在这里插入图片描述
getchar()函数只能获取一个字符,getchar相当于scanf从键盘中扫描一个字符。
上图中输入ABC,getchar在键盘缓冲区中只存储了一个字符A所以在putchar()中只输出一个a。

多个字符的输入输出

上一节所提到的函数getchar是只存储一个字符,所以利用循环我们可以连续输出多个字符。

while((c=getchar())!='\n')
	putchar(c);

当键盘不按下回车是,陆续存储键盘锁按下的按键,在用ascll码表存储字符时,所表示的字符用‘’表示

while((c=getchar())!='#')
	putchar(c);

当案件不按下#按键时,陆续存储键盘录入的按键。

统计字符个数

在获取各个字符时,利用count计数。

char c;
int count = 0;
while((c=getchar()!='\n');
	count++;
prinrf("\n");
printf("%d",count);

用for循环统计个数

for循环一般适用于有限次数或循环次数明确的循环。
for(i=0;i<n;i++)

int main()
{
	char c;
	int i;
	for(i=0;(c=getchar()!='\n';i++)
	{
		putchar(c);
	}
	printf("\n");
	printf("%d",i);
}

统计数字字符的个数

因为数字字符的ascll码是连续的,可利用此性质当一个字符满足在数字字符的区间内,计数count自加。

int main()
{
	int count=0;//计算字符个数
	char c;
	while((c=getchar())!='\n')
	{
		putchar(c);
		if(c>='0'&&c<='9') count++;
	}
	printf("%d\n",count);//输出字符个数
	return 0;
}

【项目3:消除多余的空格】
从键盘上的输入一句话,直到按回车键为止,这些字符被原样输出,但若有连续的一个以上的空格时只输出一个空格。
例如,输入:I am a teacher.,输出I am a teacher

解题思路 打印字符不是空格时标记为0,在打印字符空格时如果标记为0则上个字符无空格 则打印该字符.并将标记为1. 1不操作 0打印并标记为1

int main()
{
	char c;
	int n_space = 0;//0未检测到空格
	while((c=getchar())!='\n'))
	{
		if(c!=' ')
		{
			n_space = 0;
			putchar(c);
		}
		else if(n_space == 0)
		{
			putchar(c);
			n_space = 1;
		}
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值