我试图编写一个程序,它接受一个函数的两个参数。它应该找到我正在寻找的第一个字符,然后将字母更改为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;
}
有人能帮帮我吗?提前谢谢。
答案 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
完全相同。