常用字符串函数有:strcpy, strcmp,strcat, strlen, strncpy, strncmp,strncat, strstr, strerror, strtok
下图为这些字符串的主要功能
strlen用来求取字符串的长度。其返回值就是这个长度的大小。需要用整形来接收:
这里需要知道的是,这个字符串的长度是不包含\0的。而sizeof在求取arr数组的字节大小的时候是包含\0的
strcat用来连接两个字符串,其定义是这样的:
char* strcat(char* destnation, const char* source);
因为第二个参数只是起到进行赋值的作用,不需要进行值的改变,所以可以使用const进行保护。而第一个参数需要进行赋值,值发生变化,则不能使用const使其变成常量。同时,这个函数的返回值也是destnation的首地址。
strcmp用于比较两个字符串的大小。字符串大小比较的方法:首先看两个字符串首字母,比较两个首字母的大小。如果相同,再比较下一对字母。直到比较出大小位置。如果在两个自符串都结束后仍旧没有比较出大小。则两个字符串相等。
该函数的返回值是:如果第一个参数大于第二个参数,则返回1,相等则为0,小于则为-1.
strcpy用来字符串的赋值操作。字符串是不能直接进行赋值的。想要获取一串字符串,就需要用到strcpy。
strcpy函数的返回值就是第一个参数的首地址
strncat、strncmp、strncpy三个函数和strcat, strcmp, strcpy用法类似,只是可以规定具体访问几个字符。所以多了一个参数。且这个参数的类型是size_t无符号整形。
strncat标准定义是:
char* strncat(chat* destnation, const char* source, size_t num);
strncpy标准定义是:
char* strncpy(char* destnation, const char* source, size_t num);
strncmp标准定义是:
int strncmp(const char* str1, const char* str2, size_t num);
strncat的运用:
strncmp的运用 :
strncpy的运用:
strstr主要用来寻找子串,并返回主字符串对应的子串的第一个出现的字符的地址。
strtok是切割字符串的,其用法比较特殊。函数具有保存记忆的功能,可以记忆上一次分割的字符串的首地址。
且strtok规定,只要第一参数不为空,那么strtok就从第一参数开始遍历。假如第一参数是空指针,那么strtok就会从自己保存的上一次记忆处的地址开始进行遍历。
strtok的定义是这样的:
char* strtok(char* str, char* dilimiters);
这里的第一个参数是要进行切割的字符串首地址。第二个参数是切割符号,需要将切割符号组成一个字符串一起作为第二个参数进行传参,传给strtok函数。
例如如下
我定义了str2保存切割符,意思是我想要在,以及@处进行切割。
之后strtok进行切割后会将切割后的字符串前半部分的首地址返回。并记忆后一部分字符串的首地址 ,当进行切割后一部分时,第一参数就可以为空指针,然后开始进行遍历寻找切割。
如下为基本用法:
也可以这样进行for循环使用:
strerror经常用来报错,其需要包含头文件errno
除了上面介绍的有特殊功能的字符串函数。还有一些可以实现简单功能的字符函数
这些字符函数的函数名,以及用法如下:
字符转换函数主要有两个:toupper和tolower, toupper函数是将传进去的小写字母转换成为大写字母;tolower是将传进去的大写字母转换成小写字母。