指引网

当前位置: 主页 > 编程开发 > C >

C语言删除字符串中指定字符的例子

来源:网络 作者:佚名 点击: 时间:2017-07-19 23:07
[摘要]  C语言不像我们的java,php对于字符操作有专业的替换函数了,我们在C语言中删除指定字符需遍历之后再进行删除操作,这个也是C语言的一个比较好的做法,下面我整理了几个C语言删除指定字

题目如图:

C语言删除字符串中指定字符的例子

题目意思很明显了,我们的思路其实也挺简单的,换句话说,删掉一个然后重构数组,补上那个空,一个个字符推进一格就行了嘛,不用想得太复杂(简单的来说就是偷懒)。

 代码如下 复制代码
#include<stdio.h>
#include<string.h>
void delchar(char s[], char c);
int main(void)
{
    char c;
    char s[80];
    printf("Input a string: ");
    gets(s);
    printf("Input a char: ");
    scanf("%c", &c);
    delchar(s, c);
    printf("After deleted,the string is:%s", s);
    return 0;
}
void delchar(char s[], char c)
{
    int i, j, len;
    len = strlen(s);
    for(i = 0; i < len; i++) {
        if(s[i] == c) {
            for(j = i; j < len; j++)
                s[j] = s[j + 1];
            i = i - 1;
        }
    }
}

程序是同学问我了之后我改的,所以不必太在意和我的风格不符=。=

根据评论,我们改进代码(评论里师匠写的)

 代码如下 复制代码

void delchar(char s[], char c)
{
    int len;
    char *p, *q;
    for (p = q = s; *p; ++p) {
        if (*p != c) {
            *(q++) = *p;
        }
    }
    *q = '\0';
}

------分隔线----------------------------