strlen()
#include <stdio.h>
#include <string.h>
int main(void)
{
char str[] = "hello c";
printf("%d", strlen(str));
return 0;
}
输出:
7
获取字符串长度,不包含字符串结尾空字符\0。
strcat()
#include <stdio.h>
#include <string.h>
#define SIZE 80
int main(void)
{
char str1[SIZE] = "你到底吃了";
char str2[] = "多少海克斯科技产品";
strcat(str1, str2);
puts(str1);
return 0;
}
输出:
你到底吃了多少海克斯科技产品
很明显这个函数是用来拼接字符串的,该函数会将拼接结果赋值给参数一str1,至于参数二则不变。strcat()有个问题,其并不会检测str1是否能容纳下两个字符串的拼接结果,如果str1的长度只有10,而两个字符串加起来超过了这个长度则其会继续在str1所在存储空间之后追加超出的部分。很明显这会篡改一些信息。
strncat()
strncat()则可以控制追加的字符串长度。
#include <stdio.h>
#include <string.h>
#define SIZE 20
int main(void)
{
char str1[SIZE] = "Nancy Pelosi";
char str2[] = " is American pig";
strncat(str1, str2, 10);
puts(str1);
return 0;
}
输出:
Nancy Pelosi is Americ
其前两个参数与strcat()一样,第三个参数就是需要在str1后追加的长度。该函数在追加了指定长度或遇到空字符\0结束。相比较与strcat()这家伙相对可控一点。