一、头文件 string.h 包含的函数
1.strlen
size_t strlen(const char *s);//const保证不会修改字符串
返回s的字符长度(不包括结尾的0)
传入数组和指针一样
#include<stdio.h>
#include<string.h>
int main(int argc, char const *argv[])
{
char line[] = "Hello";
printf("strlen=%lu\n", strlen(line));
printf("sizeof=%lu\n", sizeof(line));
return 0;
}
2.strcmp
#include<stdio.h>
#include<string.h>
int main(int argc, char const *argv[])
{
char s1[] = "abc";
char s2[] = "bbc";
printf("%d\n", strcmp(s1,s2));
return 0;
}
//返回值为-1
当把s2中的b换成A时, 返回值为32,说明s1>s2,且s1,s2不相等的部分相减为32
#include<stdio.h>
#include<string.h>
int main(int argc, char const *argv[])
{
char s1[] = "abc";
char s2[] = "Abc";
printf("%d\n", strcmp(s1,s2));
printf("%d\n", 'a'-'A');
return 0;
}
#include<stdio.h>
#include<string.h>
int main(int argc, char const *argv[])
{
char s1[] = "abc";
char s2[] = "abc ";//这里后面多加了一个空格
printf("%d\n", strcmp(s1,s2));
return 0;
}
//结果为-32
3.strcpy
把第二个参数里表达的字符串 拷贝 到第一个参数所表达的空间里去
4.strcat
dst[strlen(dst)]=str[0];
🌏🌏🌏🌏🌏🌏🌏🌏🌏🌏🌏
安全问题
如果目的地没有足够的空间,strcpy和strcat都可能出现安全问题
1.n的意思是你最多能拷贝多少个字符
2. strcmp 也有一个带n的版本,n的意思是比较前n个字符是否相等