一道简单的c语言问题,其结果是 "This Is A Book!",主要是 if(fg&&*c<='z'&&*c>='a')我无法理解在线等……

#include"stdio.h"intchange(char*c,intfg){if(*c=='')L1:return1;elseif(fg&&*c<='z'&&*c>... #include"stdio.h"
int change(char *c,int fg)
{ if(*c==' ')
L1:return 1;
else
if(fg&&*c<='z'&&*c>='a')
*c+='A'-'a';
return 0;}
void main( )
{ int flag=1;
char ch;
do
{ch=getchar( );
flag=change(&ch,flag);
putchar(ch);
}while(ch!='\n');
}
展开
 我来答
wh_ysyn
2012-06-21 · 超过26用户采纳过TA的回答
知道答主
回答量:205
采纳率:0%
帮助的人:45.1万
展开全部
if(fg&&*c<='z'&&*c>='a')
理解为 if((fg==1)&&(*c <='z')&&(*c>='a'))
解释为同是满足 fg的值不为0,c指针指向的当前值不大于'z'的ASC码值;并且 不小于'a'的ASC码值。
追问
这个基本的问题我还是知道,关键是为什么改为if(*c='a')后 函数功能就变成把所有小写转换为大写了。而不改时,却只是把每个单词的首字母转换为大写呢?
___逍遥___
2012-06-21 · TA获得超过229个赞
知道小有建树答主
回答量:197
采纳率:0%
帮助的人:189万
展开全部
if(fg&&*c<='z'&&*c>='a') 主要是用来判断*c 为小写字母 没用到可删除
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
1622085451
2012-06-21
知道答主
回答量:8
采纳率:0%
帮助的人:1.3万
展开全部
这个基本的问题我还是知道,关键是为什么改为if(*c<='z'&&*c>='a')后 函数功能就变成把所有小写转换为大写了。而不改时,却只是把每个单词的首字母转换为大写呢?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式