字符串
本质是字符数组
定义方法:
#include <stdio.h>
int main()
{
//定义字符串的第一种方式,类比整数数组
char str[5] = {'a','b','c','d','e'};
for(int i=0;i<sizeof(str)/sizeof(str[0]);i++){
printf("%c",str[i]);
}
putchar('\n');
//第二种方式
char str2[5] = "abcde";
for(int i=0;i<sizeof(str2)/sizeof(str2[0]);i++){
printf("%c",str2[i]);
}
putchar('\n');
//第三种方式
char str3[] = "abcdefgh";
for(int i=0;i<sizeof(str3)/sizeof(str3[0]);i++){
printf("%c",str3[i]);
}
putchar('\n');
//第四种方式,数组名就是地址(大多数情况下)
char *pstr = "hello world"; //指针的方式,如果操作不恰当,易造成段错误
printf("%s\n",pstr);//字符串用格式占位符%s表示,不需要用i的下标遍历
return 0;
}
字符串的存储方式:
#include <stdio.h>
int main() //字符串在内存中,除了有效字符以外,还会自动在后面补一个'\0',作为字符串的结束标志
{
int a[] = {1,2,3}; //整型数组,连续的空间,整个数组的大小是元素个数*元素类型大小
printf("a数组的大小是:%d\n",sizeof(a));
printf("数组的元素大小是:%d\n",sizeof(a[0]));
printf("数组个数:%d\n",sizeof(a)/sizeof(a[0]));
char a2[3] = {'a','b','c'};
printf("a2数组的大小是:%d\n",sizeof(a2));
printf("数组的元素大小是:%d\n",sizeof(a2[0]));
printf("数组个数:%d\n",sizeof(a2)/sizeof(a2[0]));
char a3[3] = "abc";
printf("a3数组的大小是:%d\n",sizeof(a3));
printf("数组的元素大小是:%d\n",sizeof(a3[0]));
printf("数组个数:%d\n",sizeof(a3)/sizeof(a3[0]));
char a4[] = "abc"; //不写数组长度,数组的大小会根据初始化时元素个数来确定
printf("a4数组的大小是:%d\n",sizeof(a4));
printf