襄阳城 发表于 2010-2-24 13:58:35

C语言求教

<p>C语言求教</p>
<p><img src="http://img.baidu.com/img/iknow/icn_point.gif"> 悬赏分:0 -</p>
<p>解决时间:2010-2-24 13:57</p>
<p>main()</p>
<p>{char str1="abcddfefdbd",</p>
<p>c=\'d\';</p>
<p>ss(str1,c);</p>
<p>printf("%s\n",str1);</p>
<p>}</p>
<p>void ss()char *s,char t)</p>
<p>{while(*s)</p>
<p>{if(*s==t)*s=t-\'a\'+\'A\';</p>
<p>s++;</p>
<p>}</p>
<p>}该题为老师布置的</p>
<p>请高手指点,这个程序的结果是怎么得出来的,我不会做这道题</p>
<p>提问者: KL474286086 - 一级</p>
<p>最佳答案</p>
<p>正确的:</p>
<p>#include<stdio.h></p>
<p>void ss(char *s,char t){</p>
<p>while(*s){</p>
<p>if(*s==t)</p>
<p>*s=t-\'a\'+\'A\';</p>
<p>s++;</p>
<p>}</p>
<p>}</p>
<p>void main()</p>
<p>{</p>
<p>char str1="abcddfefdbd",c=\'d\';</p>
<p>ss(str1,c);</p>
<p>printf("%s\n",str1);</p>
<p>}</p>
<p>输出的结果是把str1的d全改为D</p>
<p>ss函数的作用就是当遇到d时改为D,形参传的是数组str1 的数组首地址,s++代表地址向前推一个,这样就能把整个数组都检查一遍相当于是str1,而</p>
<p>*s=t-\'a\'+\'A\';是把小写字母换成大写字母,这是一个经典转换方法,你要记住,还有就要知道,字母的ascII码也是按顺序排好的,所以可以用这个方法转换,明白了吗??</p>
<p>0</p>
<p>回答者:</p>
<p>mq学it - 四级   2010-2-13 11:43</p>
<p>我来评论>></p>
页: [1]
查看完整版本: C语言求教