版权声明:人类的最大弱点之一是自命不凡的幻想。 https://blog.csdn.net/claysystem/article/details/78728113
0. 字符串的一些散碎知识点
- 字符串常量C语言会自动在末尾后补上’\0’
- strlen()函数计算字符数组大小的时候不会计算’\0’*
int main ()
{
char str1[6]="admin";//数组长度为6 admin后还有一个结束符'\0' 也占用一个空间
printf("str1:%d",strlen(str1));
//输出结果是str1:6 但是并不表示str1数组的长度是6 因为strlen不会计算'\0'所占的空间
return 0;
}
- 0.3 字符串处理函数的返回值是一个指针类型也就是str1的地址
int main ()
{
char str1[30];//源字符串
char str2[15]="I\' Here :)"; //目标字符串
char *p_str;
//函数返回值是一个指针类型
p_str = strcpy(str1,str2); //
printf("strcpy函数返回的指针地址:%0x str1地址:%0x\n",p_str,&str1);
puts(p_str);
puts(str1);
return 0;
}
strcat()函数
# include <stdio.h>
# include <stdlib.h>
# include <string.h>
/*
stract (str1,str2);
功能:将str2 拼接在str1字符串的后面 并且覆盖str1后的 '\0'
*/
int main ()
{
char str1[20] = "fuck ";
char str2[10];
scanf("%s",str2);
strcat(str1,str2);
printf("%s",str1);
printf("\nLength:%d",strlen(str1));
return 0;
}
在对字符数组进行赋值的时候,不可以先声明后通过”=”号来赋值
错误演示:
char str1[10];
str1[10] = "string";
2. strcpy函数
strcpy()在复制字符串的时候会将字符串的’\0’也复制过去
char str1[6]=”admin”
char str2[5]=root@kali”
# include <stdio.h>
# include <string.h>
/*
strcpy(str1,str2)
作用:
*/
int main ()
{
char str1[30];
char str2[10];
//用strcpy函数对已经声明过的字符数组赋值
strcpy(str1,"我是str1");
puts(str1);
//将str1中的内容赋值给str2
strcpy(str2,str1);
puts(str2);
return 0;
}