鱼C论坛

 找回密码
 立即注册
查看: 1707|回复: 5

指针,字符删除

[复制链接]
发表于 2015-11-16 12:55:26 | 显示全部楼层 |阅读模式
10鱼币
输入一行字符串。在输入个字符,删除字符串中相同的字符。
# include <stdio.h>
# include <string.h>
main()
{
        char a[100],b;
        char* j;
        gets(a);
        b=getchar();
        j=a;
        for(;*j != '\0';j++)
        {
                if(*j==b)

                        *j=*(j+1);
    }
        
        printf("%s",a);
        
}

问题,我发现当需要删除的字符,连在一起的时候,就只能删除一个。应该是循环的那部分错了,但是我不知道该如何改。

dsa%%%afd
%
我的答案是dsa%%afd,并没有完全把%删除完
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-11-16 12:55:27 | 显示全部楼层
本帖最后由 ryxcaixia 于 2015-11-16 13:41 编辑
char* rm_spec_ch(const char* str, const char ch)
{
        // res is the result char buf
        char* res = (char*)malloc(sizeof(char) * strlen(str));
        memset(res, 0, sizeof(char) * strlen(str)); // empty the buf

        for (int i = 0; *str && str; str++)
                if (*str != ch)
                        res[i++] = *str;

        return res;
}

int main()
{
        printf("enter the str\n");
        char buf[0xFF] = {0};
        gets(buf);

        printf("enter the char that you want to remove\n");
        char rm_ch = getchar();

        char* res = rm_spec_ch(buf, rm_ch);
        printf("the res:%s\n", res);        

        // release the memory on heap
        free(res);
        res = NULL;

        return 0;
}


1.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-11-16 19:36:37 | 显示全部楼层
# include <stdio.h>
# include <string.h>
int main()
{
        char a[100],b;
        char* j;
        gets(a);
        b=getchar();
        j=a;
        
        char str[100];  //加个数组输出 
        int i=0;//让新加入的数组的下标自增 
        for(;*j != '\0';j++)
        {
           if(*j!=b)
                  {
              str[i]=*j;   //原数组转到新数组 
                          i++;                         //新数组自增 
           }    
        }
        str[i]='\0';        //手动加个结束符 
        printf("%s",str);//输出 
        return 0;
}

评分

参与人数 1荣誉 +5 鱼币 +5 收起 理由
独一无② + 5 + 5 支持楼主!

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-11-16 19:38:43 | 显示全部楼层
运行结果如图

运行结果

运行结果
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2015-11-16 20:53:31 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-12-12 11:45:20 | 显示全部楼层
学习了,谢谢分享
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-26 15:53

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表