重庆分公司,新征程启航

为企业提供网站建设、域名注册、服务器等服务

c语言调用函数返回字符串,c语言调用函数返回值

c语言函数如何返回字符串,该函数又该如何调用呢

无法返回字符串,只能返回字符串的首地址。如:char *p = GetString(); 返回的字符串空间必须是开辟在堆上的,不能是栈,如果是栈当函数结束时,数据也会销毁的;

创新互联是一家以网络技术公司,为中小企业提供网站维护、成都网站设计、做网站、成都外贸网站建设公司、网站备案、服务器租用、域名注册、软件开发、成都小程序开发等企业互联网相关业务,是一家有着丰富的互联网运营推广经验的科技公司,有着多年的网站建站经验,致力于帮助中小企业在互联网让打出自已的品牌和口碑,让企业在互联网上打开一个面向全国乃至全球的业务窗口:建站欢迎咨询:028-86922220

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

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

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

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

三种 解决 方法:

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

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

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

c语言函数返回字符串

在time1()函数里,char now[]是个在函数里声明的临时变量

函数返回 char * p之后 ,char now[]的空间就已经释放掉了

如果你想返回时间字符串

把char now[80]; 改成 char *now =(char *)malloc(sizeof(char)*80);

用malloc函数申请空间,函数返回之后空间就不会被释放掉了

VC++ 6.0编译通过

C语言调用一个函数输入3个字符串并返回给数组

你的

程序

修改如下

#include

"stdio.h"

#define

N

3

#define

M

80

void

_kf(char

b[N][M]);

int

main(void)

{

int

i;

char

a[N][M];

puts("请输入3个字符串");

_kf(a);

for(i=0;iN;i++)puts(a[i]);

system("PAUSE");

}

void

_kf(char

b[N][M])

{

int

i;

for(i=0;iN;i++)gets(b[i]);

}

C语言可以返回字符串吗?

C语言返回字符串有四种方式: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语言调用函数返回字符串,c语言调用函数返回值
文章路径:http://cqcxhl.com/article/dsgdpep.html

其他资讯

在线咨询
服务热线
服务热线:028-86922220
TOP