1、获取字符串长度函数
头文件:#include<string.h> 函数定义:size_t strlen(const char *s);
函数功能:测字符指针s指向的字符串中字符的个数,不包括‘\0’
返回值:字符串中字符的个数
2、字符串拷贝函数
头文件:#include<string.h> 函数定义:char *strcpy(char *dest,const char *src);
函数的功能:拷贝src指向的字符串到dest指针指向的内存中,'\0'也会拷贝。
函数的返回值:目的内存地址
注意:在使用此函数的时候,必须保证dest指向的内存空间足够大,否则会出现污染。
char *strncpy(char *dest,const char *src,size_t n);
函数的功能:将src指向的字符串前n个字节,拷贝到dest指向的内存中。
返回值:目的内存的地址
注意:1、strncpy不拷贝'\0'。2、如果n大于src指向的字符串中的字符个数,则在dest后面填充n-strlen(src)个'\0'
3、字符串追加函数
头文件:#include<string.h> 函数定义:char *strcat(char *dest,char *src);
函数功能:strcat函数追加src字符串到dest指向的字符串后面。追加的时候会追加'\0'
注意:保证dest指向的内存空间足够大。
函数定义:char *strncat(char *dest,char *src,size_t n);
函数功能:strcat函数追加src字符串前n个字符到dest指向的字符串后面。追加的时候会追加'\0'
注意:如果n大于src的字符个数,则只将src字符串追加到dest指向的字符串后面。追加的时候会追加'\0'。
4、字符串比较函数
头文件:#include<string.h> 函数定义:int strcmp(const char *s1,const char *s2);
函数功能:比较s1和s2指向的字符串的大小,比较的方法:逐个字符比较ascll码值,一旦比较出大小就返回。
返回值:如果s1指向的字符串大于s2指向的字符串,返回1
如果s1指向的字符串小于s2指向的字符串,返回-1
如果相等则返回0
int strncmp(const char *s1,const char *s2,size_t n);
函数功能:比较s1和s2指向的字符串中的前n个字符
5、字符查找函数
头文件:#include<string.h> 函数定义:char *strchr(const char *s,int c);
函数功能:在字符指针s所指向的字符串中,找ascll码为c的字符
注意:是首次匹配,如果说s指向的字符串中有多个ASCLL码为c的字符,则找的是第一个字符
返回值:找到了返回找到的字符的地址
找不到返回NULL
char *strrchr(const char *s, int c);
函数功能:末次匹配。在s指向的字符串中,找最后一次出现的ASCLL为c的字符
返回值:末次匹配的字符地址
7、字符串匹配函数
头文件:#include<string.h> 函数定义:char *strstr(const char *haystack.const char *needle);
函数功能:在haystack指向的字符串中查找needle指向的字符串,也是首次匹配。
返回值:找到了:找到的字符串的首地址
没找到:返回NULL
8、字符串转换数值
头文件:#include<stdlib.h> 函数定义:int atoi(const char *nptr);
函数的功能:将nptr指向的字符串转换为整数并返回。
注意:要是纯数字型的字符串
long atol(const char *nptr); double atof(const char *nptr);
9、字符串切割函数
头文件:#include<string.h> 函数定义:char *strtok(char *str,const char *delim);
函数的功能:字符串切割,按照delim指向的字符串中的字符,切割str指向的字符串。就是在str指向的字符中发现了delim字符串中的字符,就将其变成'\0',调用一次strtok只切割一次,切割一次之后,再去切割的时候strtok的第一个参数传NULL,意思是接着上次切割的位置继续切。
注意:如果str字符串中出现了连续的几个delim中的字符,则只将第一个字符变成'\0'
10、格式化字符串操作函数
int sprintf(char *buf,const char *format,...);//输出到buf指定的内存中。
int sscanf(const char *buf,const char *format,...);//从buf指定的内存区域中读入信息
11、const
11.1、修饰全局变量时,全局变量只能使用不能修改。如果修改直接报错。
11.2、修饰普通局部变量时,不能通过变量名修改值,可以通过变量地址进行修改。
11.3、修饰指针变量,如果const修饰指针变量的类型,无法通过指针变量修改地址里面的值。
如果const修饰的是指针变量,无法修改指针变量保存的地址。