C 用另一个替换字符数组中的一个字符

C Replace one character in an char array by another

我有以下 C 代码

#include <stdio.h>
int main(void){
    char c[] = "ABC"
    printf("%s ", c);
    c[1] = 'B';
    printf("%s", c);
    return 0;
}

我想要的输出是ABC BBC,但我得到的输出是ABC ABC。如何替换字符串/字符数组中的第一个字符?

C 数组是零基数。数组的第一个元素在第零个位置。

c[0] = 'B';

C 数组中的索引从 0 开始。所以你必须用 c[0] = 'B'.

替换 c[1] = 'B'

此外,请参阅今天的类似问题: - 我在此处提供了更详细的描述:)

尝试

c[0] = 'B';

数组从 0 开始

下面是一个实际有效的代码!

char * replace_char(char * input, char find, char replace) 
{

    char * output = (char*)malloc(strlen(input));

    for (int i = 0; i < strlen(input); i++)
    {
        if (input[i] == find) output[i] = replace;
        else output[i] = input[i];
    }

    output[strlen(input)] = '[=10=]';

    return output;

}