第08天C语言(04):字符串-基本概念
2017-07-10 本文已影响18人
liyuhong
一、概念
/*
用双引号 引起来的就是字符串
字符串 是由什么组成的? 字符"串", 羊肉"串"
*/
二、代码
#include <stdio.h>
int main()
{
// 如何定义字符串变量, 由于字符串是同一种类型的数据组成,并且是有序的,而数组就是用于存储很多同一种类型的有序数据,所有可以使用数组来保存字符串
// 注意: 字符串变量 和 普通的字符数组 有一定的区别
// C语言规定,字符串 必须以\0结尾(作为字符串的结束符号),所以字符串变量的元素个数 比 字符数组的元素个数多一个 \0
/*
char str[] = "lyh"; // 字符串变量 l y h \0
printf("str size = %lu\n",sizeof(str));
char charValue[] = {'l','y','h'}; // 字符串数组 ,这个并不是字符串,而是字符数组
printf("charValue size = %lu\n",sizeof(charValue));
int num = 10;
float floatValue = 10.2f;
double doubleValue =3.3;
char charValue1 = 'm';
printf("%i,%f,%lf,%c\n",num,floatValue,doubleValue,charValue1);
*/
/*
// 内存寻址 从大到小
char str[] = "lyh"; // 字符串变量
char str2[] = {'s' ,'\0','d','f'}; // 字符数组
// 如何输出字符串变量 , %s
printf("str = %s\n",str2);
// %s 的原理, 从传入的"地址"开始 逐个取出, 知道遇到"\0"位置
*/
// 字符串注意点, 字符串的初始化
char str[] = "lyh";
char str2[] = {'l' ,'y','h','\0'};
// 部分初始化, 部分初始化, 没有被初始化的元素 默认是0
char str3[10] = {'l' ,'y','h'}; // lyh 0000000
char str4[3] = {'l' ,'y','h'}; // 该方式不是字符串,而是字符串数组,因为没有\n
char str5[] = {'l' ,'y','h'};
// 需要明白的一点 就是字符串 以\0结尾, 没有\0就不是字符串
// 只要用双引号 括起来的 都是字符串
// 字符串的本质是数组
char str6[] = "lyh";
str6[1] = 's';
printf("str = %s\n",str6);
return 0;
}