c语言函数反回字符串 c++反转字符串函数

在C语言中,返回一个字符串的函数应该怎样定义

要返回字符串 需要返回char*类型

创新互联公司2013年至今,先为曲江等服务建站,曲江等地企业,进行企业商务咨询服务。为曲江企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。

需要注意的是 返回的字符串 不能是该函数的局部变量,否则会导致出错

可以是参数字符串,全局变量,静态局部变量,或者动态分配的内存

比如

char *my_str_cpy(char *d, char *s)

{

char *p=d;

while(*p++=*s++);

return d;//返回参数字符串。 

}

C语言中函数如何返回字符串?

别听 楼上 的 瞎说, 也 别 百度 了, 都是 错 的, 我 告诉 你 正确 答案

函数 中 的 字符 串 在 函数 结束 的 时候 会 自动 被 释放 掉, 所以 即使 返回 char* 指向 的

也 就是 原 函数 字符串 的 地址, 访问 的 是 一个 系统 没有 分配 给 程序 的 内存, 虽然 编译器 不会 报错, 但 语法 绝对 是 错误 的,而且 你 不一定 能 得到 一个 正确 的 结果

三种 解决 方法:

1, struct ret { char a[100]; }; 返回 一个 结构, 结构里面 包含 字符串

2, char* ret = (char *)malloc(100 * sizeof (char)); 在 函数 里 开 一个 动态 的 字符串, 这个 可以 返回, 不过 动态 内存 需要 手动 free 掉

3, 这个 不是 c语言 了, 调用 c++ 里面 的 string 类型, 也是 最简单 的 办法, 省心, 安全

C语言系列之C语言如何返回字符串数组

C语言实现返回一个字符串数组,是没有这种功能的,但是可以用指向数组的指针来实现:

解释:

char **p 这个p就是指向数组的指针,它指向一个数组的起始地址. 

想要引用里面的数组时,直接使用p[i] 即可。

我们知道C语言里面的各种数组,本质上都是指针,并且函数其实也是不能把数组当作参数的,实际上都是把数组的地址传进去了,实际上就是指向数组地址的指针。

实现

这样返回的P就是指向数组的指针了,实际上就是一个字符串数组

函数解释:

函数返回一个字符串数组,实际上就是指向数组的指针,传进去的是返回的数组的大小以及一个字符串数组,用来处理数据用。


当前题目:c语言函数反回字符串 c++反转字符串函数
转载来源:http://ybzwz.com/article/hijgpo.html