c语言字符串范围函数 c语言字符串规则

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
【c语言字符串范围函数 c语言字符串规则】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使用的内部格式
c语言字符长度函数正确的答案是5 , 题目选项有误 。
首先strlen()函数返回的长度是不包含'\0',
第一个字符为:a
第二个字符为:b
第三个字符为:\n (换行符)
第四个字符为:2
第五个字符为:\ (\\转义为\)
所以答案为5 。
(下图为实际代码演示)
扩展内容:
strlen()函数(C语言函数):
strlen所作的仅仅是一个计数器的工作,它从内存的某个位置(可以是字符串开头,中间某个位置,甚至是某个不确定的内存区域)开始扫描,直到碰到第一个字符串结束符'\0'为止,然后返回计数器值(长度不包含'\0') 。
参考资料:strlen函数 - 百科
C语言字符串处理函数strcpy(string
,string
)---把后1个复制后放入前一个字符串,空间要够
strcat(string
,string
)
---把后1个剪切后放入前一个字符串,空间要够
strcmp(string
,string
)---比较2个字符串,0为相同,0前1个大,0后1个大
strlen(string
)---字符串长度
c语言字符串范围函数的介绍就聊到这里吧,感谢你花时间阅读本站内容 , 更多关于c语言字符串规则、c语言字符串范围函数的信息别忘了在本站进行查找喔 。

    推荐阅读