1.不受限制的字符串函数
1.1 复制字符串:
原型声明:char strcpy(char dest, const char *src);
头文件:#include <string.h> 和 #include <stdio.h>
功能:把从src地址开始且含有NULL结束符的字符串复制到以dest开始的地址空间
说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。
1.2 连接字符串
原型声明: char strcat(char dest, const char src);
头文件:#include <string.h>
功能:把src所指向的字符串(包括“\0”)复制到dest所指向的字符串后面(删除dest原来末尾的“\0”)。要保证dest足够长,以容纳被复制进来的src。*src中原有的字符不变。返回指向dest的指针。
说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。
1.3 字符串比较
原型声明:int strcmp(const char *str1, const char *str2);
该函数返回值如下:
如果返回值小于 0,则表示 str1 小于 str2。
如果返回值大于 0,则表示 str1 大于 str2。
如果返回值等于 0,则表示 str1 等于 str2。
2.长度受限的字符串函数
char *strncpy(char *dest, const char *src, int n)
char * strncat(char *dest, const char *src, size_t n);
int strncmp ( const char * str1, const char * str2, size_t n );
3.字符串查找
3.1 查找一个字符:
函数原型:char *strchr(const char *str, int c)
参数:str-- 要被检索的 C 字符串。
c-- 在 str 中要搜索的字符。
功能:在参数str所指向的字符串中搜索第一次出现字符c(一个无符号字符)的位置。
返回值:返回一个指向该字符串中第一次出现的字符的指针,如果字符串中不包含该字符则返回NULL空指针
函数原型:char *strrchr(const char *str, int c);
所属库: string.h
函数功能:查找一个字符c在另一个字符串str中末次出现的位置(也就是从str的右侧开始查找字符c首次出现的位置),并返回这个位置的地址。如果未能找到指定字符,那么函数将返回NULL。使用这个地址返回从最后一个字符c到str末尾的字符串
3.2 查找任何几个字符
char *strpbrk(const char *s1, const char *s2);
这个函数返回一个指向str中第1个匹配group中任何一个字符的字符位置,如果未找到匹配,函数返回一个NULL的指针。
3.3 查找一个子串
char *strstr(const char *haystack, const char *needle)
haystack – 要被检索的 C 字符串。
needle – 在 haystack 字符串内要搜索的小字符串。
该函数返回在 haystack 中第一次出现 needle 字符串的位置,如果未找到则返回 null。
4.错误信息
char *strerror(int errnum)
errnum–这是错误的数字,通常是errno
这个函数把其中一个错误代码作为参数,并返回一个指向用于描述错误的字符串的指针
5.内存操作
5.1 void* memcpy(void* dest,const void* src,size_t num)
功能:函数memcpy从src的位置开始向后复制num个字节的数据到dest的内存位置
说明:
•这个函数在遇到’\0’不会停下来
•如果src与dest任何的重叠,复制结果都是未定义的
5.2 void* memmove(void* dest,const void* src,size_t num)
功能:和memcpy区别在于dest与src内存块可以重叠
5.3 void memcmp(const void ptr1,const void* ptr2,size_t num)
功能:比较内存区域buf1和buf2的前count个字节。该函数是按字节比较的
返回值:
当buf1 < buf2时,返回值<0
当buf1 = buf2时,返回值=0
当buf1 > buf2时,返回值>0
5.4 void* memchr(const char* ptr ,int value,sizez_t num)
功能:从buf所指内存区域的前count个字节查找字符ch。
返回值:当第一次遇到字符ch时停止查找。如果成功,返回指向字符ch的指针;否则返回NULL
5.5 void* memset(void* str,int value,size_t num)
按字节设置,进行赋值
功能:以str的起始位置开始的n个字节的内存区域用整数value进行填充
返回值:目标str内存起始地址
说明:
•memset用来对一段内存空间全部设置为某个字符,一般用在对定义的字符串进行初始化为‘ ’或‘/0’
•如果用malloc分配的内存,一般只能使用memset来初始化
•memset可以方便的清空一个结构类型的变量或数组,它可以一字节一字节地把整个数组设置为一个指定的值
本文详细介绍了C语言中的字符串操作,包括复制、连接、比较等基本函数,以及长度受限的字符串处理和查找功能。同时,深入解析了内存操作如复制、移动、比较和查找等函数的使用方法及注意事项。

被折叠的 条评论
为什么被折叠?



