替换字符

时间:2014-04-24 12:03:40

标签: c string char

到目前为止我已完成此代码,但我没有得到最终输出(空白)。 我期望的输出是当我放置字符串Hello World并将o替换为i时,字符串将为Helli Wirld。但是我在最后的输出中什么都没有。

char * substitute(char *, char, char);

int main(void){

  char arr[255];
  char i,j;
  printf("Enter a string: ");
  gets(arr);
  printf("Find a char: ");
  scanf(" %c", &i);
  printf("Replace with: ");
  scanf(" %c", &j);
  printf("Final output: ");
  printf("%s", substitute(arr, i, j));
  return 0;
}

char * substitute(char *data, char find, char replace){
  while(*data!='\0'){
   if(*data==find){
   *data=replace;
   }
  data++;
  }
  return data;
}

1 个答案:

答案 0 :(得分:3)

substitute()中,您返回已在data循环中递增的指针while,现在它指向终止'\0',这就是您{{1} }}。

您可以使用单独的局部变量来遍历字符串,或者根本不使用printf()的返回值并替换

substitute()

通过

printf("%s", substitute(arr, i, j));