在敲代码的过程中,经常需要操作字符串,为了方便这一过程,对字符串函数的使用熟练度就显得尤为重要,接下来就介绍几个常用的字符串函数。
1.strlen函数
strlen函数是计算字符串长度的函数
通过传入函数的地址,查询地址内的数据是否与'\0'相等,若不相等则计数器加一,地址指向的数据向后移动一个字节继续判断是否与'\0'相等,直到找到'\0'为止,然后返回计数器的数据,计数器的数据类型为size_t。
从strlen函数的工作过程我们不难看出,该函数计算的是输入的地址到'\0'之间的距离,因此我们在使用strlen的时候要考虑字符串的结尾是否有'\0'。
2.strcpy函数
strcpy函数是拷贝字符串的函数
通过传入放置拷贝数据空间的地址和被拷贝数据所在空间的地址,strcpy通过将被拷贝的数据赋值给拷贝的空间中,来完成拷贝的过程。而拷贝的结束取决于被拷贝数据'\0'的所在。
函数会返回一个char*指针,该指针指向放置拷贝数据空间的地址。
strncpy函数则是在strcpy的基础上加入了一个限定拷贝字符数量参数。
如果被拷贝的字符中没有'\0'且拷贝的字符数的数量没有超过被拷贝的字符数,那么该函数不会自动在字符串后面补'\0',但是如果拷贝的字符数量超过了被拷贝的字符数,该函数就会通过补'\0'的方式补全拷贝的字符数。
注意,放置拷贝字符的空间需要大于或等于被拷贝的字符串的大小。
3.strcat函数
strcat函数可以在目标字符串后面追加字符串。
strcat函数先通过接受到的目标字符串的指针,查找目标字符串中'\0'的位置,然后再将'\0'替换成追加字符串的第一个字符,再不断向后追加,直到追加字符串'\0'的位置结束。函数同样会返回一个char*指针,同样指向目标字符串首个字符的位置。
strncat函数也是在strcat函数的基础上加入了限定追加字符数量的参数。但是区别在于strncat函数不论如何始终会在最后补上'\0',且当限定的追加字符数的参数大于追加字符数时,函数只会追加追加的字符,并不会在后面多补'\0'
同样需要注意目标字符串内存的大小。
4.strcmp函数
strcmp函数可以比较字符串的大小,比较的是两个字符串对应位置上字符的ASCII码值,而与字符串的长短无关。如果第一个字符串小于第二个字符串,函数会返回一个小于0的数,同理,第一个字符串小于第二个字符串时,会返回一个大于0的数,而两个字符串相等时,则会返回0.
strncmp函数同样是在strcmp函数的基础上加入了限定比较字符数量的参数。
5.strstr函数
这个函数则是在源字符串中,查找目标字符串是否在其中,如果存在函数会返回目标字符串首字符在源字符串中的位置的指针,如果不存在则返回空指针。
以上就是几个比较常用的字符串函数。可以尝试通过其实现的原理来写出自己的字符串函数,从而更好的理解这几个字符串函数。