永发信息网

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

答案:2  悬赏:20  手机版
解决时间 2021-02-07 15:54
C语言关于字符串的操作函数有哪些
最佳答案
string.h头文件中包含的字符串函数
void *memcpy(void *dest, const void *src, size_t n);//将n字节长的内容从一个内存地址复制到另一个地址;如果两个地址存在重叠,则最终行为未定义
void *memmove(void *dest, const void *src, size_t n);//将n字节长的内容从一个内存地址复制到另一个地址;与memcpy不同的是它可以正确作用于两个存在重叠的地址
void *memchr(const void *s, char c, size_t n);//在从s开始的n个字节内查找c第一次出现的地址并返回,若未找到则返回NULL
int memcmp(const void *s1, const void *s2, size_t n);//对从两个内存地址开始的n个字符进行比较
void *memset(void *, int, size_t);//用某种字节内容覆写一段内存空间
char *strcat(char *dest, const char *src);//在字符串dest之后连接上src
char *strncat(char *dest, const char *src, size_t n);//从src截取n个字符连接在字符串dest之后,返回dest字符串
char *strchr(const char* str, int ch);//从字符串str头开始查找字符ch首次出现的位置
char *strrchr(const char* str,int ch);//从字符串str尾开始查找字符ch首次出现的位置
int strcmp(const char *, const char *);//基于字典顺序比较两个字符串
int strncmp(const char *, const char *, size_t);//基于字典顺序比较两个字符串,最多比较n个字节
int strcoll(const char *, const char *);//基于当前区域设置的字符顺序比较两个字符串
char *strcpy(char* str1, const char* str2);//将str2拷贝给str1
char *strncpy(char* str1, const char* str2, size_t n);//截取str2的n个字符拷贝给str1
char *strerror(int);//返回错误码对应的解释字符串,参见errno.h(非线程安全函数)
size_t strlen(const char *);//返回一个字符串的长度
size_t strspn(const char *s, const char *strCharSet);//从字符串s的起始处开始,寻找第一个不出现在strCharSet中的字符,返回其位置索引值。换句话说,返回从字符串s的起始位置的完全由strCharSet中的字符构成的子串的最大长度。strspn为string span的缩写。不支持多字节字符集。
size_t strcspn(const char *s, const char *strCharSet);//从字符串s的起始处开始,寻找第一个出现在strCharSet中的字符,返回其位置索引值。换句话说,返回从字符串s的起始位置的完全由不属于strCharSet中的字符构成的子串的最大长度。strcspn为string complement span的缩写。不支持多字节字符集。
char *strpbrk(const char *s, const char *strCharSet);//在字符串s中查找strCharSet中任意字符第一次出现的位置的指针值。strpbrk为string pointer break缩写。不支持多字节字符集。
char *strstr(const char *haystack, const char *needle);//在字符串haystack中查找字符串needle第一次出现的位置,heystack的长度必须长于needle
char *strtok(char *strToken, const char *strDelimit );//将一个字符串strToken依据分界符(delimiter)分隔成一系列字符串。此函数非线程安全,且不可重入;但MSVC实现时使用了thread-local static variable因而是线程安全的单仍然是不可重入,即在单线程中不能对两个源字符串交替调用该函数来分析token,应当对一个字符串分析完成后再处理别的字符串。
size_t strxfrm(char *dest, const char *src, size_t n);//根据当前locale转换一个字符串为strcmp使用的内部格式
全部回答

#include "stdio.h" char *word(char *str); char *in(void); int main() {     char *str1,*out;     str1=in();     out=word(str1);     puts(out);     getchar();     getchar(); } char *in(void)   //输入函数 {

    //char str[81];//返回的是局部变量,局部变量在函数执行完之后就会被销毁,当然,地址也不见了,所以函数返回的是一个无效的地址  static char str[81];     int i,c;     i=0;     while(i<80)     {     c=getchar();     str[i]=c;          if(c==' ' ||c=='\0' ||c=='\n')     {     str[i]='\0';     break;     }     i++;     }     return str; }

char *word(char *str)  //取单词时去掉除字母外的字符 {     //char out[81];  static char out[81];     char i,j;     i=0;     j=0;     while(str[i]!='\0')     {       if((str[i]>='a' && str[i]<='z')||(str[i]>='a' && str[i]<='z'))     {         out[j]=str[i];   //截取单词时,和输入的字符串复制不同步     j++;     }     i++;    //加空字符     }     out[j]='\0';     printf("%s",out);     return out; }

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
为什么照片会把脸拍胖
武广高铁郴州时刻表
中国电信(八陡镇营业厅)地址在什么地方,我要
兴业县供销合作联社这个地址在什么地方,我要
为什么在新设备登录微信老是验证手机号
男生喜欢女生会让女生跟他叫哥吗
王者荣耀我猴子害怕花木兰尤其是高手!经常被
中国电信(石炭坞营业厅)地址在哪,我要去那里
娃娃乐婴幼儿用品专营店这个地址在什么地方,
请问聊城市教育局茌平菜屯南海子小学教一年级
2019年自主学习能力测评二年级数学上册人教版
中国联通(秋泉社区营业厅)地址在哪,我要去那
梦幻西游2角色登记期间能否转移物品
gta5退出游戏后弹出停止工作怎么回事?
潍坊天坛经贸发展有限公司这个地址在什么地方
推荐资讯
上一辈子是什么意思?
蔷薇小屋在哪里啊,我有事要去这个地方
【金水湾度假村】金水湾度假村要建一个长方体
红豆薏仁吃多了会胖吗
牵手时大拇指不停地抚摸对方心理暗示
要学调酒师,是不是学费特别高
九龙站内衣馆地址在什么地方,我要处理点事
世界杯历史上单届进球最多的是谁?
康济医药连锁有所为药房这个地址在什么地方,
玩具四驱车的最快速度有多少?
墨玉县农牧业机械化技术推广站地址有知道的么
偃师市李村镇四中地址在哪,我要去那里办事
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?