一、字符串是什么?
字符串是储存在数组中输入和输出的,与字符数组有着不同,字符数组不以“\0”结尾。
#include<stdio.h>
int main()
{
char a[] = { 'A','B','C','D','\0'};
//char a[] = "ABCD";
//gets_s(a);
//scanf("%s", a);
printf("%s", a);
printf("%d\n", sizeof(a));
return 0;
}字符串数组在定义时数组长度至少需要扩大一,要给予空字符的储存位置。
二、字符串函数
1.strlen函数计算字符串的实际长度,不包含结束标志\0
sizeof包括\0;
#include<stdio.h>
//#include<string.h>
int main()
{
char a[]={'a','b','c'};
printf(”长度为:%d\n",strlen(a));
return 0;
}
2.strcpy函数把源字符数组的字符串复制在其他数组中,结束标志\0;
在其中不能直接把数组等于另一个数组,数组复制后属于常量,常量的值不能更改;
#include<stdio.h>
int main()
{
char a[];
char b[];
gets(a);
gets(c);
strcpy(a,b);
return 0;
}
3.strcmp函数将两个字符串从首字母开始,按照ascll的顺序比较
判断返回是否为真值;
char a[];
char b[];
strcmp(a,b);
4.strcat函数将两个字符串数组连接
#include<string.h>
int main()
{
char a[]={"你好"};
char b[]={"你也是"};
strcat(a,b);
printf("a:%s\tb:%s",a,b);
return 0;
}
二.字符数组和指针字符
1.字符数组是储存在静态内存中,而指针是直接将字符串的地址传给变量,字符数组是直接将字符串复制进入(常量),因此不能对字符数组进行修改,但是指针可以通过自增自减,进行位置偏2.移。如果不想对指针字符进行更改,则需要在其前加const。
#include<stdio.h>
#include<string.h>
int main()
{
char a[] = "我和你"; //数组为常量不能++;
const char *p = "我和他";
printf("字符串常量的地址:%p\n", "我和你");
printf("字符数组的首地址:%p\n", a);
printf("字符串指针的地址:%p\n", p);
return 0;
}
本文介绍了字符串的基本概念,探讨了字符串数组的定义与使用,并详细讲解了C语言中常用的字符串函数,如strlen、strcpy、strcmp和strcat等的功能及用法。此外,还对比了字符数组与指针字符的区别。

3208

被折叠的 条评论
为什么被折叠?



