当前位置:首页 » 编程语言 » c语言返回字符串函数

c语言返回字符串函数

发布时间: 2022-08-25 13:14:46

1. 在c语言中,返回一个字符串的函数应该怎样定义

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

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

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

比如

char*my_str_cpy(char*d,char*s)
{
char*p=d;
while(*p++=*s++);
returnd;//返回参数字符串。
}

2. c语言中return可以是一个字符串吗

当然可以
char* fun()
{
char* myname = "hello world";
return myname;
},函数的返回值类型可以有很多种!(int,float,bool,char*,char...)

3. C语言如何返回字符串

new 是动态分配(在堆上分配),你向系统要了 50 B 的内存,如
char* str=new char[50]; // 50 * 1B
堆上分配就是这情况,你不释放(delete一下),它就认为你在用着;不会再给别人用
如果给你的你不用了,或是你把它给忘记了,那就算是内存泄露了、

当然,你程序退出的时候,系统会替你回收、不过这样的习惯不好,你想,如果你写了死循环(操作系统、服务器程序等)、那里面不断滴在内存泄露,你就危险了、后来发现,不知不觉,内存怎么就不够用了,明明自己用的不多啊、、

修改一下:
char* fanhui()
{
static char str[100]; // 局部变量,静态局部变量,它在第一次调用的时候分配,
cin >> str; // 函数返回了,str的空间还是存在的,也就是不会重复申请、
return str; // 而且,函数外面通过,指针也是可以访问他们的、、
}


char* fanhui()
{
char str[100]; // 局部变量,默认动态局部变量,它在每一次调用的时候分配,
cin >> str; // 函数返回了,str的空间也就不存在了,他是在,栈,上分配的、
return str; // 函数外面通过,指针想访问?、非法!!!人都不在了,你喊他干嘛啊??
}

4. C语言关于字符串的操作函数有哪些

string.h头文件中包含的字符串函数

void*memcpy(void*dest,constvoid*src,size_tn);//将n字节长的内容从一个内存地址复制到另一个地址;如果两个地址存在重叠,则最终行为未定义
void*memmove(void*dest,constvoid*src,size_tn);//将n字节长的内容从一个内存地址复制到另一个地址;与memcpy不同的是它可以正确作用于两个存在重叠的地址
void*memchr(constvoid*s,charc,size_tn);//在从s开始的n个字节内查找c第一次出现的地址并返回,若未找到则返回NULL
intmemcmp(constvoid*s1,constvoid*s2,size_tn);//对从两个内存地址开始的n个字符进行比较
void*memset(void*,int,size_t);//用某种字节内容覆写一段内存空间
char*strcat(char*dest,constchar*src);//在字符串dest之后连接上src
char*strncat(char*dest,constchar*src,size_tn);//从src截取n个字符连接在字符串dest之后,返回dest字符串
char*strchr(constchar*str,intch);//从字符串str头开始查找字符ch首次出现的位置
char*strrchr(constchar*str,intch);//从字符串str尾开始查找字符ch首次出现的位置
intstrcmp(constchar*,constchar*);//基于字典顺序比较两个字符串
intstrncmp(constchar*,constchar*,size_t);//基于字典顺序比较两个字符串,最多比较n个字节
intstrcoll(constchar*,constchar*);//基于当前区域设置的字符顺序比较两个字符串
char*strcpy(char*str1,constchar*str2);//将str2拷贝给str1
char*strncpy(char*str1,constchar*str2,size_tn);//截取str2的n个字符拷贝给str1
char*strerror(int);//返回错误码对应的解释字符串,参见errno.h(非线程安全函数)
size_tstrlen(constchar*);//返回一个字符串的长度
size_tstrspn(constchar*s,constchar*strCharSet);//从字符串s的起始处开始,寻找第一个不出现在strCharSet中的字符,返回其位置索引值。换句话说,返回从字符串s的起始位置的完全由strCharSet中的字符构成的子串的最大长度。strspn为stringspan的缩写。不支持多字节字符集。
size_tstrcspn(constchar*s,constchar*strCharSet);//从字符串s的起始处开始,寻找第一个出现在strCharSet中的字符,返回其位置索引值。换句话说,返回从字符串s的起始位置的完全由不属于strCharSet中的字符构成的子串的最大长度。strcspn为stringcomplementspan的缩写。不支持多字节字符集。
char*strpbrk(constchar*s,constchar*strCharSet);//在字符串s中查找strCharSet中任意字符第一次出现的位置的指针值。strpbrk为stringpointerbreak缩写。不支持多字节字符集。
char*strstr(constchar*haystack,constchar*needle);//在字符串haystack中查找字符串needle第一次出现的位置,heystack的长度必须长于needle
char*strtok(char*strToken,constchar*strDelimit);//将一个字符串strToken依据分界符(delimiter)分隔成一系列字符串。此函数非线程安全,且不可重入;但MSVC实现时使用了thread-localstaticvariable因而是线程安全的单仍然是不可重入,即在单线程中不能对两个源字符串交替调用该函数来分析token,应当对一个字符串分析完成后再处理别的字符串。
size_tstrxfrm(char*dest,constchar*src,size_tn);//根据当前locale转换一个字符串为strcmp使用的内部格式
热点内容
iptables限制ip访问 发布:2025-01-17 21:38:01 浏览:174
易拉罐压缩机 发布:2025-01-17 21:25:35 浏览:924
在c语言是什么意思啊 发布:2025-01-17 21:21:02 浏览:516
re0脚本 发布:2025-01-17 21:13:34 浏览:305
甜蜜家园密码箱有什么用 发布:2025-01-17 21:07:28 浏览:48
有教少儿编程 发布:2025-01-17 20:55:37 浏览:37
直播背脚本 发布:2025-01-17 20:50:18 浏览:410
ftp移动文件的mv命令 发布:2025-01-17 20:45:53 浏览:405
电脑上啥是服务器 发布:2025-01-17 20:40:48 浏览:353
安卓手机怎么连大众车载 发布:2025-01-17 20:20:53 浏览:241