c语言里返回字符类型函数 c语言返回字符串的函数

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

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

网站建设哪家好,找创新互联公司!专注于网页设计、网站建设、微信开发、微信小程序开发、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了鹿邑免费建站欢迎大家使用!

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

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

三种 解决 方法:

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

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

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

C 语言带返回值的函数 返回值是字符串类型的应该怎么定义和调用呀

给你写了个例子,fun函数用于为字符串开辟空间,然后返回字符串的指针

#include stdio.h

#include stdlib.h

char * fun(int n)

{

return (char *)malloc(n);

}

void main()

{

char *ray;

int i;

ray = fun(5);

for (i = 0; i 4; ++i)

{

ray[i] = 65+i;

}

ray[4] = '\0';

printf("%s", ray);

}

C语言怎么设定函数返回值为char*字符串类型?

把函数的返回值的类型设置为char类型的指针就可以了。

例如:char* MultMatrix( )

实例:

#include iostream

using namespace std;

char* MultMatrix( )

{

char*M = new char[4];

M[0]='a';

M[1]='b';

M[1]='c';

M[3]='d';

M[3]='\0';//给字符串写结尾

cout M[0] " " M[1] endl;//输出返回前的数组

cout M[2] " " M[3] endl;

return M;

}

int main()

{

char *M = MultMatrix();

cout M[0] " " M[1] endl;//输出返回后数组

cout M[2] " " M[3] endl;

delete[] M;

return 0;

}

运行结果:

a b

c d

a b

c d

c语言函数返回字符串

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

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

如果你想返回时间字符串

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

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

VC++ 6.0编译通过

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语言中,返回一个字符串的函数应该怎样定义

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

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

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

比如

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

{

char *p=d;

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

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

}


名称栏目:c语言里返回字符类型函数 c语言返回字符串的函数
转载注明:http://bzwzjz.com/article/hgsoee.html

其他资讯

Copyright © 2007-2020 广东宝晨空调科技有限公司 All Rights Reserved 粤ICP备2022107769号
友情链接: 移动手机网站制作 重庆网站制作 成都网站制作 网站建设改版 网站设计制作 四川成都网站设计 成都网站制作 成都网站建设 成都营销网站建设 成都网站建设 重庆网站制作 成都网站设计公司 成都品牌网站设计 成都网站建设 成都网站设计 成都网站建设 网站设计 成都网站设计 定制网站设计 成都企业网站设计 温江网站设计 成都定制网站建设