十天学会C语言

第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;
}
上一篇下一篇

猜你喜欢

热点阅读