C:文字と文字列の配列

文字の文字列配列

  • いいえcharの配列で置き換えることができるC言語の文字列データ型。
  • 文字列の配列であるが、必ずしも文字列の配列ではないしなければなりません。
  • 番号0(文字「\ 0」と等価である)は、文字列の末尾の文字列ですが、char配列は、番号0で終わらない場合は、文字列が特別であるので、それは、文字列、普通の文字列ではありませんチャーのアレイ。
#include <stdio.h>

int main()
{
    char c1[] = { 'c', ' ', 'p', 'r', 'o', 'g' }; //普通字符数组
    printf("c1 = %s\n", c1); //乱码,因为没有’\0’结束符

    //以‘\0’(‘\0’就是数字0)结尾的字符数组是字符串
    char c2[] = { 'c', ' ', 'p', 'r', 'o', 'g', '\0'}; 
    printf("c2 = %s\n", c2);

    //字符串处理以‘\0’(数字0)作为结束符,后面的'h', 'l', 'l', 'e', 'o'不会输出
    char c3[] = { 'c', ' ', 'p', 'r', 'o', 'g', '\0', 'h', 'l', 'l', 'e', 'o', '\0'};
    printf("c3 = %s\n", c3);

    return 0;
}

初期化文字列:

#include <stdio.h>

// C语言没有字符串类型,通过字符数组模拟
// C语言字符串,以字符‘\0’, 数字0
int main()
{
    //不指定长度, 没有0结束符,有多少个元素就有多长
    char buf[] = { 'a', 'b', 'c' };
    printf("buf = %s\n", buf);  //乱码

    //指定长度,后面没有赋值的元素,自动补0
    char buf2[100] = { 'a', 'b', 'c' };
    printf("buf2 = %s\n", buf2);

    //所有元素赋值为0
    char buf3[100] = { 0 };

    //char buf4[2] = { '1', '2', '3' };//数组越界

    char buf5[50] = { '1', 'a', 'b', '0', '7' };
    printf("buf5 = %s\n", buf5);

    char buf6[50] = { '1', 'a', 'b', 0, '7' };
    printf("buf6 = %s\n", buf6);
        char buf7[50] = { '1', 'a', 'b', '\0', '7' };
    printf("buf7 = %s\n", buf7);

    //使用字符串初始化,编译器自动在后面补0,常用
    char buf8[] = "agjdslgjlsdjg";

    //'\0'后面最好不要连着数字,有可能几个数字连起来刚好是一个转义字符
    //'\ddd'八进制字义字符,'\xdd'十六进制转移字符
    // \012相当于\n
    char str[] = "\012abc";
    printf("str == %s\n", str);

    return 0;
}

scanfの文字列を使用して受信しました:

#include <stdio.h>

int main()
{
    char str[100];
   
    printf("input string1 : \n");
    scanf("%s", str);//scanf(“%s”,str)默认以空格分隔
    printf("output:%s\n", str);

    return 0;
}

おすすめ

転載: www.cnblogs.com/wbyixx/p/12239373.html
おすすめ