c - 返回C中的指针,在字符串中查找值

标签 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 中的工作方式仍然有点模糊。任何人都可以指出我做错了什么,或者指针中发生了什么示例问题?

最佳答案

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

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

您的函数被声明为返回char *。因此返回一个指向 char 的指针。

关于c - 返回C中的指针,在字符串中查找值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54081791/

相关文章:

c - 如何使用#define 从文本文件中定义变量值?

c - 为什么使用 malloc 创建的指针进行赋值会导致段错误

c - 为什么2个线程的执行比C中的1个线程慢?

c - 米斯拉-C : cast literal number

c - scanf 如何知道何时结束 for 循环?

CMake 错误在 3rdparty/libtiff/CMakeLists.txt :27 (ocv_include_directories): Unknown CMake command "ocv_include_directories"

c - C 中的值返回 null,不知道为什么

c - 为什么输出打印两次?

c - c中的嵌套结构

C malloc,仅在填充时使用内存