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
,也称为 a char *
。
您的函数被声明为 return char *
。所以返回一个指向char
.
推荐阅读
- css - Bootstrap 3.3.7 中的多输入支持
- c# - Unity C#:使用自动定位和鼠标查看的相机控制
- go - 使用 ldflags 设置 Go 变量与供应商文件夹冲突
- javascript - 在循环序列中一个接一个地显示多个信息 JQuery - Flapper
- java - 在 Java 中的某个范围之间安全地生成随机数
- ios - 定时器选择器中的完成功能
- angular - mydatepicker disableSince 选项在出生日期验证的情况下
- uwp-xaml - 如何使用这种 postasync 方法将我的图像发送到我使用 system.net.http 库的 Web 服务
- ios - 如何使用 UIStackView 制作可扩展的 UITableViewCell
- r - 如何更改ggplot中y轴的比例?