c语言中返回字符串函数名 c++函数返回字符串

C语言中函数如何返回字符串?别听 楼上 的 瞎说 ,  也 别 百度 了,都是 错 的, 我 告诉 你 正确 答案
函数 中 的 字符 串 在 函数 结束 的 时候 会 自动 被 释放 掉 ,  所以 即使 返回 char* 指向 的
也 就是 原 函数 字符串 的 地址 ,  访问 的 是 一个 系统 没有 分配 给 程序 的 内存, 虽然 编译器 不会 报错,但 语法 绝对 是 错误 的,而且 你 不一定 能 得到 一个 正确 的 结果
三种 解决 方法:
1,struct ret { char a[100];}; 返回 一个 结构, 结构里面 包含 字符串
2 ,  char* ret = (char *)malloc(100 * sizeof (char));在 函数 里 开 一个 动态 的 字符串,这个 可以 返回 ,  不过 动态 内存 需要 手动 free 掉
3 ,  这个 不是 c语言 了,调用 c++ 里面 的 string 类型,也是 最简单 的 办法,省心, 安全
c语言 , 返回字符串形式的函数#include stdio.h
char *getString(char a[] ) //这里有错
【c语言中返回字符串函数名 c++函数返回字符串】{
gets(a); //这里我用gets(a);
return a;
}
int main()
{
char a[10],*p; //这里一个指针变量来接受返回的地址
p=getString(a);
puts(p);//这里我用puts(a);
}
可以运行
在C语言中,返回一个字符串的函数应该怎样定义要返回字符串 需要返回char*类型
需要注意c语言中返回字符串函数名的是 返回的字符串 不能是该函数的局部变量c语言中返回字符串函数名,否则会导致出错
可以是参数字符串,全局变量,静态局部变量 , 或者动态分配的内存
比如
char *my_str_cpy(char *d, char *s)
{
char *p=d;
while(*p++=*s++);
return d;//返回参数字符串 。
}
c语言中返回字符串函数名的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于c++函数返回字符串、c语言中返回字符串函数名的信息别忘了在本站进行查找喔 。

    推荐阅读