0
点赞
收藏
分享

微信扫一扫

C语言学习记录(十)

千行 2023-11-12 阅读 83

字符数组初始化及传递

字符数组的初始化 (1)对每个字符单独赋值进行初始化。例如, c[0]='I';c[1]='';c[2]='a';c[3]='m';c[4]='';c[5]='h';c[6]='a';c[7]='p';c[8]='p';c[9]='y'; (2)对整个数组进行初始化。例如, char c[10]={'I','a','m','h','a','p','p','y'}

#include <stdio.h>

void print(char a[]);
void char_array();

int main()
{
    char_array();

    return 0;
}

void char_array()
{
    char c[5] = {'h', 'e', 'l', 'l', 'o'};
    char c[5] = {'h', 'e', 'l', 'l', '\0'};
    char d[5] = "how";
    // 输出字符串乱码时,要去查看字符数组中是否存储了结束符'\0'
    printf("%s\n", c); // 因为字符数组 c 没有保存放置结束符'\0' 所以会乱码
    printf("%s\n", d);
    print(d);
}

void print(char a[])
{
    int i = 0;
    while (a[i])
    {
        printf("%c", a[i]);
        i++;
    }
    printf("\n");
}

scanf 读取字符

scanf在使用%s 读取字符串时,会忽略空格和回车(这一点与%d 和%f 类似)

#include <stdio.h>

void scanf_string();

int main()
{
    scanf_string();
    return 0;
}

void scanf_string()
{
    char a[10];
    char b[10];
    // 字符数组名a中存储了数组的起始地址,因此不需要取地址
    // scanf 读取字符串时使用%s
    scanf("%s", a);
    printf("%s\n", a);
    // scanf 在使用 %s 读取字符串时,会忽略空格和回车(这一点与%d 和%f 类似)
    scanf("%s%s", a, b);
    printf("a=%s,b=%s\n", a, b);
}

举报

相关推荐

0 条评论