C将char数组中的一个字符替换为另一个字符

时间:2015-02-20 20:47:16

标签: c arrays string replace char

我有以下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。如何替换String / char数组中的第一个字符?

4 个答案:

答案 0 :(得分:4)

C数组中的索引从0开始。因此,您必须将c[1] = 'B'替换为c[0] = 'B'

此外,请参阅今天的类似问题:Smiles in output C++ - 我在那里提供了更详细的说明:)

答案 1 :(得分:2)

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

c[0] = 'B';

答案 2 :(得分:2)

尝试

c[0] = 'B';

数组从0开始

答案 3 :(得分:2)

下面是一个实际工作的代码!!!!

Ammar Hourani

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)] = '\0';

return output;

}