首页 > 解决方案 > 在C中返回一个指针,在字符串中查找值

问题描述

我正在尝试学习 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 中的工作方式仍然有点模糊。谁能指出我做错了什么,或者示例问题中的指针发生了什么?

标签: c

解决方案


str[x]是一个char(具体来说,它是一个char类型的对象)。

&str[x]是指向 的指针char,也称为 a char *

您的函数被声明为 return char *。所以返回一个指向char.


推荐阅读