使用指针

时间:2017-11-07 13:36:28

标签: c

我试图编写一个程序,它接受一个函数的两个参数。它应该找到我正在寻找的第一个字符,然后将字母更改为x。这个例子的结果是" txst"。我的问题是为什么这不起作用?这个输出是:xest这是我的代码:

#include <stdio.h>
#include <string.h>

char* contains(const char* string, char c){

    for(; *string; string++){
        if(strchr(string, c)){
            return string;
        }
    }
    return NULL;
}

int main(void) {

    char test[] = "test";
    char* result = contains(test, 'e');

    if(result != NULL){
        *result = 'x';
        printf("%s\n", test);
    }

    return 0;
}

有人能帮帮我吗?提前谢谢。

1 个答案:

答案 0 :(得分:2)

您可能打算这样做:

char* contains(const char* string, char c) {

  for (; *string; string++) {
    if (*string == c) {
      return string;
    }
  }
  return NULL;
}

实际上,这或多或少地沸腾到:

char* contains(const char* string, char c) {
    return strchr(string, c);
}

您的contains功能与strchr完全相同。