我正在尝试学习 C。我遇到一个问题,要求我循环遍历字符串,找到一个值并返回它。
int main(void)
{
char *hello = "Hello";
char *found_char = find_char(hello, 'e');
printf("Found char: %s\n", found_char);
}
char *find_char(char *str, int c)
{
int x;
for (x = 0; str[x] != 0; x++){
if (c == str[x]){
return str[x];
}
}
}
我收到以下错误
warning:returning 'char' from a function with return type 'char *' makes pointer from integer without a cast
我有一种感觉,我返回了错误的类型,但我对指针在 C 中的工作方式仍然有点模糊。任何人都可以指出我做错了什么,或者指针中发生了什么示例问题?
最佳答案
str[x]
是一个char
(具体来说,它是一个char
类型的对象)。
&str[x]
是指向 char
的指针,也称为 char *
。
您的函数被声明为返回char *
。因此返回一个指向 char
的指针。
关于c - 返回C中的指针,在字符串中查找值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54081791/