`
testcs_dn
  • 浏览: 113861 次
  • 性别: 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语言本身并不像其他高级语言那样内置了丰富的字符串操作函数,但通过标准库中的`<string.h>`我们可以使用一些基本的字符串函数,如`strcpy`、`strlen`等。然而,为了更好地理解和掌握C语言,有时我们需要自己动手...

    C语言中常用的字符串处理函数

    在C语言中,字符串处理...这些函数是C语言中处理字符串时的基石,掌握它们的正确使用方法对于编写高效、健壮的程序至关重要。在实际应用中,应特别注意避免缓冲区溢出和空指针解引用等问题,确保代码的安全性和可靠性。

    C语言字符串函数大全

    C语言字符串函数大全是C语言中对字符串操作的集合,包括字符串拷贝、字符串拼接、字符串查找、字符串比较等多种操作。下面是对这些函数的详细介绍: 1. stpcpy函数: stpcpy函数用来拷贝一个字符串到另一个字符串。...

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

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

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

    在C语言中,返回字符串通常涉及处理字符数组的内存管理和指针操作。下面将详细讨论四种常见的实现方式。 1. **使用堆空间**: 在这种方法中,函数会在堆上动态分配内存,创建一个字符串,并返回指向这个内存块的...

    C语言字符、字符串定义及相关函数

    标题《C语言字符、字符串定义及相关函数》所涉及的知识点主要集中在C语言中字符与字符串的表示方法、存储机制以及常用的字符串操作函数。C语言是高级编程语言中较为底层的一门语言,它没有专门的字符串类型,而是...

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

    在C语言中,查找字符在字符串中出现的位置是常见的任务,这可以通过标准库提供的`strchr()`和`strrchr()`函数来实现。这两个函数都包含在`<string.h>`头文件中,它们的主要区别在于查找的方向:`strchr()`从字符串的...

    c语言中所有字符串函数使用手册

    - `strlen(s)` 返回字符串`s`的长度,不包括结束的空字符。 5. `strchr()` 和 `strstr()` 函数: - `strchr(s, c)` 在字符串`s`中查找字符`c`首次出现的位置,返回指向该位置的指针,否则返回`NULL`。 - `strstr...

    C语言实现字符串截取

    根据给定的信息,本文将详细解释两个用于C语言中字符串截取的方法:`subStringByIndex` 和 `subStringByPointer`。这两个函数都属于自定义实现,它们提供了灵活且实用的功能来帮助开发者轻松地从一个字符串中提取所...

    各种C语言字符串函数-笔试面试必备

    在C语言中,字符串处理是程序员必须掌握的基本技能之一,尤其在笔试和面试环节中,考察字符串函数的使用与自定义实现非常常见。以下是对几种常见的C语言字符串函数的深入解析及其实现方式。 #### 1. 字符串反转 - ...

    C语言字符串函数使用大全

    C语言字符串函数是C语言中用于操作字符串的函数,包括字符串拷贝、字符串拼接、字符串查找、字符串比较等。这些函数在C语言编程中非常重要,本文将对这些函数进行详细的介绍。 1. stpcpy函数 stpcpy函数的功能是将...

    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语言浮点数字符串_浮点数转换_

    本文将深入探讨如何在C语言中进行浮点数到字符串的转换,并通过实例代码来展示具体实现。 首先,`printf`函数是最常用的一种方法,它允许我们控制输出的格式。例如,我们可以使用`%f`格式说明符将浮点数转换为字符...

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

    2. **查找子串并返回index值**:C语言中的`strstr`函数可以找到子串在目标字符串中的首次出现,但不返回索引。可以扩展一个`find_substring`函数,它不仅返回`strstr`的查找结果,还返回子串在目标字符串中的起始...

    C语言总结:字符串函数封装练习(十四种示例).pdf

    在C语言中,字符串处理是程序开发中常见且重要的任务,涉及到多个内置函数。以下是根据提供的文件内容,关于C语言中字符串和内存处理的详细知识点: 1. `memcpy` 函数: `memcpy` 用于从源地址(通常是字符串或...

Global site tag (gtag.js) - Google Analytics