您的位置:首页 > 编程语言 > C语言/C++

第08天C语言(04):字符串的基本概念

2017-07-04 00:00 281 查看
#pragma mark 字符串的基本概念
###pragma mark 概念

###pragma mark 代码

#include <stdio.h>
int main()
{
#warning 字符串的原理
/*
// 用双引号引起来的就是字符串
printf("Hello world!\n");

// 字符串是由什么组成的? 字符"串",羊肉"串"

// 如何定义字符串变量,由于字符串是同一种类型的数据组成,并且是有序的\
而数组就是用于存储很多同一一种类型的有序数据,所以可以使用数组保存字符串

// 注意: 字符串变量和普通的字符数组有一定的区别
// C语言规定,字符串必须以\0结尾(作为字符串的结束符号),所以字符串变量的元素个数比字符数组的元素个数一个 \0

char str[] = "lyh"; // 字符串变量 l y h \0
printf("str size = %lu\n",sizeof(str));

char charValues[] = {'l','y','h'};//字符数组 , 这个并不是字符串,而是字符数组
printf("charValue size = %lu\n",sizeof(charValues));

int num = 10;
float floatValue = 10.1f;
double doubleValue = 9.9;
char charValue = 'l';
printf("%i,%f,%lf,%c\n",num,floatValue,doubleValue,charValue);
*/

#warning 字符串和字符数组 %s的原理
/*
// 内存寻址从大到小
char str[] = "lyh"; // 字符串变量
char str2[] = {'h','\0','t','h'}; // 字符数组
// 如何输出字符串变量, 占位符 %s
// str 数组的名称,数组的名称就是数组的地址
printf("str = %s\n",str2);

// %s的原理,从传入的"地址"开始 逐个取出,直到遇到\0为止
*/
#warning 字符串的注意点
// 字符串注意点,字符串的初始化
char str1[] = "lyh";
char str2[] = {'l','y','h','\0'};

// 部分初始化,部分初始化中,没有被初始化的元素默认是0
// \0对应的ASCII 0
char str3[10] = {'l','y','h'};  // lyh 0000000
char str4[3] = {'l','y','h'}; // 改方式不是字符串,而是字符数组,因为没有\0
char str5[] = {'l','y','h'};
// 需要明白的一点就是字符串以\0结尾,没有\0就不是字符串
// 只要是用双引号扩起来的都是字符串
// 字符串的本质就是数组

char str6[] = "lyh";
str6[1] = 'g';
printf("%s\n",str6);

return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  C语言