| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 456 人关注过本帖
标题:这个函数有点不明白
只看楼主 加入收藏
黄昏の腕轮
Rank: 2
等 级:论坛游民
帖 子:64
专家分:12
注 册:2009-6-13
结帖率:100%
收藏
 问题点数:0 回复次数:2 
这个函数有点不明白
将字符串s1中类似:a-z的转换成abcd....xyz并放到s2中。
函数如下:
void expand(char s1[],char s2[])
{
    char c;
    int i,j;
   
    i=j=0;
    while((c=s1[i++])!='\0')
       if(s1[i]=='-'&&c<s1[i+1]){
            i++;
            while(c<s1[i])
              s2[j++]=c++;
       }else
         s2[j++]=c;
    s2[j]='\0';
}
红色部分,当c增加到和s1[i]相等时,循环就终止了。那s1[i]岂不是没有放入到s2中?哪位大哥来解释一下,谢谢。
搜索更多相关主题的帖子: 函数 
2009-10-04 15:08
forever74
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:CC
等 级:版主
威 望:58
帖 子:1686
专家分:4252
注 册:2007-12-27
收藏
得分:0 
在红色部分确实像你说的那样
但是外循环下次执行的时候会把那个序列的最后一个字符补上啊,所以不必担心哦

对宇宙最严谨的描述应该就是宇宙其实是不严谨的
2009-10-04 16:54
黄昏の腕轮
Rank: 2
等 级:论坛游民
帖 子:64
专家分:12
注 册:2009-6-13
收藏
得分:0 
以下是引用forever74在2009-10-4 16:54:19的发言:

在红色部分确实像你说的那样
但是外循环下次执行的时候会把那个序列的最后一个字符补上啊,所以不必担心哦
哦,原来如此啊。。外面还有句循环判断c=s[i++]。。把这句想漏了。。谢谢。。
2009-10-04 17:54
快速回复:这个函数有点不明白
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.013958 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved