输入一串字符并将每个单词的首字母改为大写后输出,单词是指连续不含空格的字符串,各单词之间用空格隔开,空格可以是多个。

#include<stdio.h>//习题6.8,输入字符中首字母大写 
int main(void)
{
	int word=0;//满足非空格字符转换条件 
	char ch;
	while((ch=getchar())!='\n'){
		if(ch==' '){
			word=0;//符合多空格也可以满足条件,同时在此条件下,进行字符转换 
		}
		else if(word==0){//字符非空格,此时word(定义的时候的)=0,判断并转化为大写字母 
			if(ch>='a'&&ch<='z'){
				ch=ch-32;
				word=1;// 在没遇到空格时,小写输出 ,同时保证只输出一个大写字母 
			}
		}
		putchar(ch);//输出大写字母后,Word=1,第一个if不进,第一个else也不进,直接到这原样输出字符(即小写) 
	}
	
	return 0;
}

注意:改为大写字母的字符只需要输出一次,所以转换为大写字母时要改变word的值,使跳过字母转换。

空格后的第一个字母需大写,所以遇到空格就进入字母转换,同时用word限制只转换一个字母。

当输出不在分支结构里,转换为大写字母的字符就不会重复输出。

  • 1
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值