c语言请教一个问题,一道上机编程题
一道上机编程题,题目是:请编写一个函数fun,其功能是:将ss所指字符串中所有下标为奇数位置上的字母转换为大写(若该位置上不是字母,则不转换),例如,若输入“abc4EF...
一道上机编程题,题目是:请编写一个函数fun,其功能是:将ss所指字符串中所有下标为奇数位置上的字母转换为大写(若该位置上不是字母,则不转换),例如,若输入“abc4EFg”,则应输出“aBc4EFg”这个是我填写的void fun( char *ss ){int i;for(i=1;ss[i-1]&&ss[i]==1;i+2)if(ss[i]>='a'&&ss[i]<='z')ss[i]+='A'-'a';
}
这个是标准答案void fun( char *ss ){ int i=1; while(ss[i-1]&&ss[i]) { if(ss[i]>='a'&&ss[i]<='z') ss[i]+='A'-'a'; i+=2; }}我不知道我哪里写错了,看上去功能一样啊?求解释,再帮忙解释下while(ss[i-1]&&ss[i])的意思,求高手解答 展开
}
这个是标准答案void fun( char *ss ){ int i=1; while(ss[i-1]&&ss[i]) { if(ss[i]>='a'&&ss[i]<='z') ss[i]+='A'-'a'; i+=2; }}我不知道我哪里写错了,看上去功能一样啊?求解释,再帮忙解释下while(ss[i-1]&&ss[i])的意思,求高手解答 展开
4个回答
展开全部
for语句里面for(i=1;i<strlen(ss);i+2)。
while(ss[i-1]&&ss[i]) 这是判断属否达到了字符串的最后一位,个人觉得直接是while(ss[i])也可以实现的,你尝试运行检验一下。
while(ss[i-1]&&ss[i]) 这是判断属否达到了字符串的最后一位,个人觉得直接是while(ss[i])也可以实现的,你尝试运行检验一下。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
fun( char *ss ){int i;for(i=1;ss[i-1]&&ss[i]==1;i+=2)if(ss[i]>='a'&&ss[i]<='z')ss[i]+='A'-'a';}
不是i+2,而是i+=2
不是i+2,而是i+=2
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
i+2 => i +=2; 或 i = i+2;
你没有改变i值。
你没有改变i值。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询