有四种方式:
1。使用堆空间,返回申请的堆地址,注意释放
2。函数参数传递指针,返回该指针
3。返回函数内定义的静态变量(共享)
4。返回全局变量
其实就是要返回一个有效的指针,尾部变量退出后就无效了。

使用分配的内存,地址是有效
char *fun()
{
char* s = (char*)calloc(100, sizeof(char*) );
if (s)
strcpy ( s , “abc ” );
return s;
}
但这种方式需要注意,必须由使用将将返回的地址free掉

将地址由入参传入
char* fun(char*s)
{
if (s)
strcpy(s, “abc “);
return s;
}
这种方式调用都要注意给s分配的大小是足够。
可以这样:
char* fun(char*s, int len)
{
if (s)
{
strncpy(s, “abc “, len-1);
s[len-1] = 0;
}
return s;
}

或才使用局部静态变量
char* fun()
{
static char s[100];
strcpy(s, “abc “);
return s;
}
这种方式需要注意,不要修改返回的这个字符串,由于是共享地址,对它的修改会反应到每个调用者的。可以这样:
const char* fun()
{
static char s[100];
strcpy(s, “abc “);
return s;
}

还有一种是使用全局变量
char g_s[100];
char* fun()
{
strcpy(g_s, “abc “);
return s;
}
同样的,也要注意这个变量可存储的最大空间。

C语言中返回字符串函数的四种实现方法相关推荐

  1. java实现c语言的函数_C语言实现返回字符串函数的四种方法

    前言 C语言返回字符串函数共有四种方式,分别如下: 使用堆空间,返回申请的堆地址,注意释放 函数参数传递指针,返回该指针 返回函数内定义的静态变量(共享) 返回全局变量 下面来看看详细的介绍 其实就是 ...

  2. C++返回字符串函数的几种实现方法

    C++返回字符串函数 有四种方式: 1.使用堆空间,返回申请的堆地址,注意释放 2.函数参数传递指针,返回该指针 3.返回函数内定义的静态变量(共享) 4.返回全局变量 1.使用堆空间,返回申请的堆地 ...

  3. c++STL中的find()函数 有两种使用方法

    c++STL中的find()函数 有两种使用方法 方法一: 开头引头文件:中的函数 其调用形式为 find(start,end,value) start搜寻的起点,end搜寻的终点,要寻找的value ...

  4. c语言中存储字符用什么函数,那些C语言中你不知道的字符串函数(坑)

    1.strcpy() 在字符串拷贝函数中,它的函数编写不难,如下 char* Strcpy(char* dest, const char* src) { assert(dest != NULL &am ...

  5. c语言中接收字符串函数,C语言中字符串处理函数拾锦

    之前在学习C语言的时候,知道C语言库函数中有很多字符串处理函数,但是没怎么好好利用它.最近,发现它们的作用实在太大了,而且有些是我从来都没有用过的.今天想整理一下,方便以后使用.比较容易理解的,就没有 ...

  6. 详解软件测试中白盒测试基本概念及四种白盒测试方法以及六种逻辑覆盖法(语句覆盖、判定覆盖、条件覆盖、判定条件覆盖、条件组合覆盖、路径覆盖)

    在这篇文章中,我们将讲解白盒测试的基本概念,以及四大常用的白盒测试方法. 一.白盒测试基本概念 1.白盒测试的定义 白盒测试又称为结构测试或逻辑驱动测试,它是把测试对象看成一个透明的盒子,它允许测试人 ...

  7. C语言结构体自动初始化实现,C语言中结构体(struct)的几种初始化方法

    本文给大家总结的struct数据有3种初始化方法 1.顺序 2.C风格的乱序 3.C++风格的乱序 下面通过示例代码详细介绍这三种初始化方法. 1)顺序 这种方法很常见,在一般的介绍C的书中都有介绍. ...

  8. C语言中的字符串函数

    函数名: stpcpy 功 能: 拷贝一个字符串到另一个 用 法: char *stpcpy(char *destin, char *source); 程序例: #include <stdio. ...

  9. c语言中有裁剪字符串的函数吗,C语言中的字符串截取函数

    /*======================================================== 子数整数 源程序名 num.??? (pas,c,cpp) 可执行文件名 num. ...

最新文章

  1. Feign实现服务调用
  2. 对于随机变量的标准差standard deviation、样本标准差sample standard deviation、标准误差standard error的解释...
  3. 海象金服与沐金农签署战略合作协议,共谋消费金融发展 正文 财经网微评论(0人评论) 本文来源于东方网 2017-08-17 10:03:12 我要评论(0) share 快成为第一
  4. 云炬Android开发笔记 3-1项目架构初始化
  5. C# 8: 可变结构体中的只读实例成员
  6. 1013.windows平台下移植qtmqtt三方库
  7. Python字符串处理小案例
  8. ML 12 13 mixture of gaussions and EM
  9. 微信打电话和直接打电话有什么区别吗?为什么?
  10. 【最详细】Wireshark使用教程
  11. 英语常见的固定搭配有哪些
  12. 数字证书和证书颁发机构的基础知识
  13. Linux网络管理18:DHCP服务器
  14. win10怎么快捷锁定计算机,win10锁屏快捷键如何设置_让你win10电脑一键秒锁屏的方法...
  15. python抢票软件源代码_自己写的一个抢票加速的Python小程序源码分享-----纯属娱乐...
  16. vue+Element表单验证+数字英文密码和手机号验证(详细)
  17. 图像处理时为什么灰度化 【文末赠书】
  18. js中字符串和数组互相转换
  19. 案例3-1-1 构建旁挂二层组网隧道转发WLAN
  20. css实现div中的input和span垂直居中显示

热门文章

  1. 检查点和oracle数据库的恢复(一)SCN
  2. 在Exchange Server 2007中限制部分用户只能收发内部邮件
  3. Js中fetch方法
  4. oracle 分表和分区哪个好_互联网大厂有哪些分库分表的思路和技巧?
  5. adrms移动设备扩展插件_如何在所有移动设备上扩展网站
  6. 关联映射 一对多 实验心得_使用影响映射来帮助您的团队进行实验
  7. 苏格拉底婚姻_苏格拉底如何教我与开发人员交谈
  8. 开源虚拟示波器-_一个新的开源数据库,TP-Link路由器上的开源固件以及更多新闻
  9. 代码组织和部署 文件操作 node.js 1
  10. HTML5 Canvas中绘制矩形