如何在C程序中将数组中的元素设置为null

Wyl*_*yns 2 c unix arrays null element

我在Unix中编写一个C程序,无法弄清楚如何将数组元素设置为NULL.我需要能够执行此操作以从字符串中删除多个字符.

nKa*_*del 7

您不能分配null给特定的char数组索引,因为该索引所表示的值是char而不是指针.但是,如果需要从给定字符串中删除特定字符,可以按如下方式实现

void removeChar(char *str, char garbage) {

    char *src, *dst;
    for (src = dst = str; *src != '\0'; src++) {
        *dst = *src;
        if (*dst != garbage) dst++;
    }
    *dst = '\0';
}
Run Code Online (Sandbox Code Playgroud)

测试程序

#include<stdio.h>
int main(void) {
    char* str = malloc(strlen("abcdef")+1);
    strcpy(str, "abcdbbbef");
    removeChar(str, 'b');
    printf("%s", str);
    free(str);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

产量

acdef
Run Code Online (Sandbox Code Playgroud)