C语言day08-04字符串的基本概念

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;
}


    原文作者:liyuhong165
    原文地址: https://www.jianshu.com/p/720b4dc1427f
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞