| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 474 人关注过本帖
标题:还有个问题请教大家 这个程序是不是有点自相矛盾呢?
只看楼主 加入收藏
遥望江南hsj
Rank: 1
等 级:等待验证会员
帖 子:29
专家分:0
注 册:2010-4-13
结帖率:40%
收藏
 问题点数:0 回复次数:4 
还有个问题请教大家 这个程序是不是有点自相矛盾呢?
#include<stdio.h>
#include<string>
 void main()
  { char b1[8]="abcdefg",b2[8],*pb=b1+3;
    int i=0,j=0;
    for(;j<=7;j++)
        printf("%-2c",*b1+j);
    printf("\n");
    while(--pb>b1)//-------字母也能比较大小吗?
        strcpy(b2,pb);
    printf("%d\n",strlen(b2));
    for(;i<=7;i++)
        printf("%-2c",*b2+i);

  }
红色部分输出结果似乎矛盾了
搜索更多相关主题的帖子: 自相矛盾 
2010-06-20 20:56
myhnuhai
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:3
帖 子:425
专家分:1725
注 册:2010-3-17
收藏
得分:0 
string的头文件写错了!

不要让肮脏的记忆,迷失了原本纯洁的心灵!
2010-06-20 21:00
遥望江南hsj
Rank: 1
等 级:等待验证会员
帖 子:29
专家分:0
注 册:2010-4-13
收藏
得分:0 
哦 真是的 我改一下 在看看 谢谢了
2010-06-20 21:03
遥望江南hsj
Rank: 1
等 级:等待验证会员
帖 子:29
专家分:0
注 册:2010-4-13
收藏
得分:0 
输出结果还是一样啊 矛盾了
第一个红色部分是计算b2的有效长度 输出结果为6
第二个红色部分输出b2时输出了8个字母
矛盾了
2010-06-20 21:09
waterstar
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:5
帖 子:984
专家分:2810
注 册:2010-2-12
收藏
得分:0 
第一个问题
这一行printf("%-2c",*b1+j);这一行虽然也会输出和原来一样的字符,但这只是有ASCII转化后的字符而已应该这样调用printf("%-2c",*(b1+j));
第二个问题
这两行
    while(--pb>b1)//-------字母也能比较大小吗?
        strcpy(b2,pb);
你比较的是地址的大小而已,而且当pb的值等于b1的值的时候不会进行字符串的复制,也就是说你复制的字符串只是从b1[1]开始的字符串而已
第三个问题
这一行printf("%-2c",*b2+i);问题和第一个相似,*b2是字符b,'b'+0也就是经ascii转化后还是字符b,然后就是循环重加的问题了
你的计算字符串长度的函数测出的长度是6,这是正确的,因为你复制的是从b[1]开始的6个字符而已

冰冻三尺,非一日之寒;士别三日,不足刮目相看!
2010-06-20 23:33
快速回复:还有个问题请教大家 这个程序是不是有点自相矛盾呢?
数据加载中...
 
   



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

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