字符数组的输入输出

字符数组的输入输出


1. scanf 输入,printf 输出

scanf 对字符类型有 %c 和 %s 两种格式(printf 同理,下同),其中 %c 用来输入单个字符,%s 用来输入一个字符串并存在字符数组里。%c 格式能识别 空格换行 并将其输入,而 %s 通过 空格换行 来识别一个字符串的结束。
示例:

#include<stdio.h>
int main()
{
    char s[10];
    scanf("%s",str);
    printf("%s",str);
    return 0;
}
输入:TAT TAT TAT
输出:TAT

2. getchar 输入,putchar 输出

getchar 和 putchar 分别用来输入输出单个字符。
示例:

#include<stdio.h>
int main()
{
    char str[5][5];
    for(int i = 0; i < 3; i++)
    {
        for(int j = 0; j < 3; j++)
        {
            str[i][j] = getchar();
        }
        getchar();  //这句是为了把输入中每行末尾的换行吸收掉
    }
    for(int i = 0; i < 3; i++)
    {
        for(int j = 0; j < 3; j++)
        {
            putchar(str[i][j]);
        }
        putchar('\n');
    }
    return 0;
}

3.gets 输入,puts 输出

gets 用来输入一行字符串(注意:gets 识别换行符 \n 作为输入结束,因此 scanf 完一个整数后,如果要使用 gets,需要先用 getchar 接收一个整数后的换行符),并将其存放于数组中;puts 用来输出一行字符串,并紧跟一个换行
示例:

#include<stdio.h>
int main()
{
    char str1[20];
    char str2[5][10];
    gets(str1);
    for(int i = 0; i < 3; i++)
        gets(str2[i]);
    puts(str1);
    for(int i = 0; i < 3; i++)
        puts(str2[i]);
    return 0;
}

输入:abcd
      cdef
      efgh
      ghijk

输出:与输入一样     

注意:如果不是使用 scanf 或 gets 输入字符串(假如使用 getchar),一定要在输入的每个字符串后加入 ‘\0’,否则 printf 和 puts 输出字符串会因为无法识别字符串末尾而输出一大堆乱码。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值