`
mybwu_com
  • 浏览: 177671 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

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

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

使用分配的内存,地址是有效
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语言实现返回字符串函数的四种方法

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

    C语言学习-字符串处理函数

    C语言学习-字符串处理函数 strcat(char str1,char str2) strcpy(char str1,char str2) ...strlen(char str)//返回字符串数据长度 strlwr(char str)//转换为小写 strupr(char str)//转换为大写

    C语言中计算字符串长度与分割字符串的方法

    C语言strlen()函数:返回字符串的长度 头文件: #include strlen()函数用来计算字符串的长度,其原型为: unsigned int strlen (char *s); 【参数说明】s为指定的字符串。 strlen()用来计算指定的字符串s 的...

    C语言字符串处理函数

    几个字符串处理函数增强版 常用需求基本都能完成 已经编译成DLL 函数列表 兼容字符和串 void revstr char str 字符串反转 int substring char res int pos int len char substr 从pos开始取len个字符到substr中 ...

    C语言-字符串函数大全和详解

    c语言字符串函数详解 void *memset(void *dest, int c, size_t count); 将dest前面count个字符置为字符c. 返回dest的值.

    C语言编程-编写函数fun求一个字符串的长度,在main函数中输入字符串,并输出其长度;

    C语言编程-编写函数fun求一个字符串的长度,在main函数中输入字符串,并输出其长度;

    C语言字符串处理函数扩展

    C语言对字符串处理的函数扩展,比如实现了子串截取,查找返回index值等

    C语言中函数返回字符串的方法汇总

    C语言返回字符串函数共有四种方式,分别如下:使用堆空间,返回申请的堆地址,注意释放、函数参数传递指针,返回该指针、返回函数内定义的静态变量(共享)、返回全局变量

    c语言数据结构字符串模式匹配算法.zip

    KMP字符串模式匹配通俗点说就是一种在一个字符串中定位另一个串的高效算法。简单匹配算法的时间复杂度为O(m*n);KMP匹配算法。可以证明它的时间复杂度为O(m+n).。 一.简单匹配算法 先来看一个简单匹配算法的函数: ...

    c语言字符串操作大全

    c语言字符串个函数操作大全 函数名: stpcpy 功 能: 拷贝一个字符串到另一个 函数名: strcat 功 能: 字符串拼接函数 用 法: char *strcat(char *destin, char *source); 函数名: strchr 功 能: 在一个串中...

    C语言字符串数字提出.zip

    //功能描述:解析出字符串中的数字--数组,返回int数据 //C语言之从字符串中获取数字,字符串和数据,及数据和字符串的转换函数

    c语言实现字符串分割strsplit.c

    函数返回: 分割后的子字符串列表指针。 注 意:存储分割后的子字符串列表的变量str_list是用动态内存分配函数malloc分配的,在使用完str_list后要及时释放其所占用的内存。 ———————————————— 版权...

    C语言中查找字符在字符串中出现的位置的方法

    C语言strchr()函数:查找某字符在字符串中首次出现的位置 头文件:#include strchr() 用来查找某字符在字符串中首次出现的位置,其原型为: char * strchr (const char *str, int c); 【参数】str 为要查找的...

    C语言实现对字符串操作实例

    //大小写转换 //从字符串中找出指定字符,并删掉 函数功能是返回字符串str1中str2子串出现的次数 /*my_strcpy(char * str1, char * str2)*/ /*如果目的空间比源空间小,则报错*/

    asp字符串处理函数大全

    Len Len(string|varname) 返回字符串内字符的数目,或是存储一变量所需的字节数。 Trim Trim(string) 将字符串前后的空格去掉 Ltrim Ltrim(string) 将字符串前面的空格去掉 Rtrim Rtrim(string) 将字符串后面的...

    C语言中字符串常用函数strcat与strcpy的用法介绍

    函数实现: 代码如下:/********************** * C语言标准库函数strcpy的一种典型的工业级的最简实现 * 返回值:目标串的地址。 * 对于出现异常的情况ANSI-C99标准并未定义,故由实现者决定返回值,通

    strcmp是C语言中的一个字符串比较函数

    strcmp是C语言中的一个字符串比较函数,其全称是string compare,用于比较两个字符串并根据比较结果返回整数。

    与ASCII码相关的C语言字符串操作函数

    C语言toascii()函数:将字符转换成对应的ASCII码 头文件: #include 定义函数: int toascii(int c); 函数说明:toascii()会将参数c 转换成7 位的unsigned char 值,第八位则会被清除,此字符即会被转成ASCII码...

Global site tag (gtag.js) - Google Analytics