首页 学无止境C语言笔记正文

字符数组的输入输出

By无邪 C语言笔记 2019-12-10 15:12:05 356 0

C语言基础

数组

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 输出字符串会因为无法识别字符串末尾而输出一大堆乱码。

本文标题:字符数组的输入输出
本文链接:https://dingqidong.com/?id=109
作者授权:除特别说明外,本文由 By无邪 原创编译并授权 无邪-blog 刊载发布。
版权声明:本文使用「署名-非商业性使用-相同方式共享 4.0 国际」创作共享协议,转载或使用请遵守署名协议。

评论

关于我们
个人博客
关注本站微信号,享受更多服务!
联系方式
电话:
地址:
Email:
邮编:
Copyright ©2019-2020.Powered by©本站隶属于黎明工作室 鲁ICP备19054880号-1

鲁公网安备 37098302000619号

本站已安全运行:
召唤伊斯特瓦尔