| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 667 人关注过本帖
标题:在字符串中删除所有指定的某个字符 这个程序哪里错了?
只看楼主 加入收藏
我只是个学生
Rank: 3Rank: 3
来 自:中石大
等 级:论坛游侠
威 望:1
帖 子:57
专家分:190
注 册:2014-12-14
收藏
得分:0 
图片附件: 游客没有浏览图片的权限,请 登录注册

//差不多了

我们的善良将助长一个孩子不劳而获的懒惰心理
2014-12-16 12:20
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
回复 11楼 我只是个学生
不需要另外用缓冲区的

授人以渔,不授人以鱼。
2014-12-16 12:26
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
程序代码:
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>

void Pause(void);
size_t DeleteChar(char* str, char ch);

int main(void)
{
    char str[] = "123123123";
    printf_s("Deleted char count is %u, then string is: %s", DeleteChar(str, '3'), str);

    Pause();
    return EXIT_SUCCESS;
}

void Pause(void)
{
    printf_s("\nPress any key to continue...");
    _getch();
}

size_t DeleteChar(char* str, char ch)
{
    size_t count = 0;

    char* p = str;
    while (*str != '\0')
    {
        if (*str != ch)
        {
            *p++ = *str;
        }
        else
        {
            ++count;
        }
        ++str;
    }
    *p = '\0';

    return count;
}


图片附件: 游客没有浏览图片的权限,请 登录注册

授人以渔,不授人以鱼。
2014-12-16 13:23
lcsama
Rank: 2
等 级:论坛游民
帖 子:12
专家分:19
注 册:2014-12-14
收藏
得分:4 
程序代码:
#include<stdio.h>
#include<string.h>
main()
{
    char a[20],n,b[20];
    int i,j,m;
    gets(a);
    scanf("%c",&n);
    for(i=0;i<strlen(a);i++)
    {
        if(a[i]!=n)
        {b[j]=a[i];j++;}     
       
    }
    puts(b);
   
} 
这样子就好啦
2014-12-16 14:23
诸葛欧阳
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:流年
等 级:贵宾
威 望:82
帖 子:2790
专家分:14619
注 册:2014-10-16
收藏
得分:4 
你可以把输出重新存入字符串,不过我最开始也干过把目标字符用空格代替的事

一片落叶掉进了回忆的流年。
2014-12-16 15:05
zhangte65
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2014-12-15
收藏
得分:0 
#include<stdio.h>
#include<string.h>
main()
{
    char a[20],ch;
    int i,k,n;
    gets(a);
    ch=getwchar();
    n=strlen(a);
    for(k=0;k<n;k++)
    {
        if(a[k]==ch)
        {
            for(i=k;i<n;i++)
                a[i]=a[i+1];
            
            n--;
            k--;
        }
    }
    puts(a);
   
}
2014-12-16 15:29
ouyangshit
Rank: 3Rank: 3
来 自:China
等 级:论坛游侠
帖 子:155
专家分:107
注 册:2014-10-25
收藏
得分:4 
程序代码:
#include<stdio.h>
int main()
{
    char a[20],n;
    int j,i;
    gets(a);
    scanf("%c",&n);
    for(i=0,j=0;a[j]!=0;i++,j++)
        if(a[j]==n)i--;
        else
            a[i]=a[j];
    a[i]=0;
    puts(a);
    
}

我改了下,楼主试试。欢迎交流。
2014-12-16 16:39
快速回复:在字符串中删除所有指定的某个字符 这个程序哪里错了?
数据加载中...
 
   



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

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