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;
}
我有以下 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;
}