| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 387 人关注过本帖
标题:关于指针覆盖前移
取消只看楼主 加入收藏
yudeyinji198
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:139
专家分:133
注 册:2012-8-30
结帖率:96%
收藏
已结贴  问题点数:15 回复次数:2 
关于指针覆盖前移
写了一个代码,把2个字符串数组做比较,把重复的去掉,用指针前移和覆盖的方法,可是输出却是乱码,请问这是什么原因呢?
程序代码:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>

void main()
{
    char *p,*q,*str[10];
    str[0]="我是字符串";
    str[2]="字符";
    p=str[0];
    q=str[2];
    while(*p++==*q)     //判断第一个字符串数组里的元素是否等于第二个字符串数组里的元素
    {
        *p=*p++;            //覆盖
        p--;                 //指针前移
        q++;             //第二个字符串数组指针后移,下次判断
    }
    str[2]=p;
    printf("%s\n",str[2]);
    system("pause");
}



[ 本帖最后由 yudeyinji198 于 2012-12-18 10:13 编辑 ]
搜索更多相关主题的帖子: color 字符串 
2012-12-18 10:11
yudeyinji198
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:139
专家分:133
注 册:2012-8-30
收藏
得分:0 
回复 2楼 wp231957
没加,不过我在while循环结束后加了 *q='\0'; 后输出是空的!
还是我加错了?
2012-12-18 10:37
yudeyinji198
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:139
专家分:133
注 册:2012-8-30
收藏
得分:0 
回复 4楼 wp231957
用同一个字符串里面的后一个元素覆盖前一个元素。
*p=*p++;            //覆盖
改为*p=*(p+1);
2012-12-18 10:43
快速回复:关于指针覆盖前移
数据加载中...
 
   



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

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