本篇文章给大家谈谈c语言返回char数组,以及c++字符串转char数组对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
1、c语言怎么返回字符串数组?2、在C语言中,如何把一个char类型的二维数组作为方法的返回值?3、c语言 函数中 定义 char *data[5] 这个如何返回
c语言怎么返回字符串数组?
C语言返回值不支持返回数组,不过可以通过返回指针类型,用以替代数组。在C语言中,数组大多数时候是可以用指针替代的。
不过需要注意的是,不能够返回在函数内部定义的局部变量数组,因为一旦函数退出,局部变量就会被释放,导致数组指针无效。
可以返回以下几种:
1 全局变量,或者全局变量空间内的一个地址。
2 静态局部变量,或者静态局部变量内部的一个地址。
3 从参数传入的数组/指针变量,或者在其上做的合法偏移。
4 在数组内部动态申请的空间首地址。
在C语言中,如何把一个char类型的二维数组作为方法的返回值?
这样定义split函数:
char (*split(char *strs))[1024]
{
static char temp[1024][1024];
int i, j=0;
for (i=0; strs[i]!=’\0′; i++)
{
temp[j][i]=strs[i];
if (strs[i]==’ ‘) {
printf(“%s\n”, temp[j]);
j++;
}
}
return temp;
}
函数头很难看是不是,弄个typedef就简单明了多了:
//还有,代码有点问题,改了下
#includestdio.h
typedef char(*parr1024)[1024];
parr1024 split(char *strs)
{
static char temp[1024][1024];
int i, j=0,k=0; //再定义个k
for (i=0; strs[i]!=’\0′; i++)
{
temp[j][k++]=strs[i]; //用k
if (strs[i]==’ ‘) {
printf(“%s\n”, temp[j]);
j++;
k=0; //复位k
}
}
return temp;
}
int main() {
char aa[]=”hello world “; //后面加个空格方便测试split函数的输出
split(aa);
return 0;
}
c语言 函数中 定义 char *data[5] 这个如何返回
一步一步分开来看
data[5]是一个数组,内有5个数据, 再看前面的char*, 是指这5个数据的类型为char*
即: 数组内每个数据是一个指向字符串的指针, 调用时data[0]就是一个char*, 即字符串
如要求输入5个学生的姓名, 就是用的这种数据结构
如果要返回,这个char*数组, 直接返回这个数组名, 但是会存在风险, 建议定义数组时用malloc分配内存.
c语言返回char数组的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于c++字符串转char数组、c语言返回char数组的信息别忘了在本站进行查找喔。