在C语言中常见的字符串函数有strlen(求字符串长度)、strcpy(拷贝字符串)、strcat(连接字符串)、strcmp(字符串比较)等。在使用这些字符串时需要注意要引用头文件#include<string.h>。
1.strlen
strlen函数可以用来计算字符串实际长度,他不包括字符'\0',需要注意的是他的计算长度过程中就是根据'\0'来判断字符串是否已经结素,所以如果一个字符串中没有'\0',那么到这个字符串末尾时,他也依然继续往后计算下去,直到碰到'\0'。针对一些十六进制、八进制和一些转义字符,他也是能够将他们正确识别,而不是根据字符来计算。
2.strcpy
strcpy函数的作用是将字符串2拷贝到字符串1中。要注意的是字符串1要足够大,要确保能够将字符串2中的数值全部拷贝下,字符串2中的'\0'字符依然会拷贝过去。如果字符串1中原本拥有数据,那么在字符串2中的长度下会被覆盖。
拓展:strncpy
n表示要拷贝的长度,与strcpy函数相比它只需要将字符串2的前n个字符拷贝到字符串1的前n个字符,而strcpy是全部拷贝过去。
3.strcat
strcat函数的作用是将字符串2连接到字符串1后面,这就需要字符串1的长度足够大,防止连接后的字符串足够容纳下连接后的所有字符,当两个字符串都以'\0'结尾,那么字符串1后面的'\0'将被取消,新字符串后面将加上新的'\0',要注意两个字符串都要以'\0'结束,不然依然会向后继续查询拼接。
拓展:strncat附加指定长度的字符串
将字符串2的前n个字符附加在字符串1上,规则上和strcat一致,要注意的是如果n大于字符串2的长度,他也只会将字符串2全部附加在字符串1上,不会按照n的数值添加。
4.strcmp
strcmp函数用于字符串比较函数,它会从左到右一次对比字符串中的字符,根据字符的ASCII码的值比较,如果字符串1中的相应字符更大这返回正数,反之返回负数,如果两个字符串中一个较短且在所有的字符都一一对应相等,则长度大的字符串更大,如果长度也一样这返回0。
拓展:strcasecmp忽略大小写比较字符串
5.其它常用字符串函数
eg:需要注意的是strchar和strstr函数返回的都是对应第一个字符所在的地址。