C语言中基础的字符与字符串的输入与输出

平常写代码的时候经常会因为字符与字符串的输入输出问题出现很多错误,于是干脆整理一下教材中基础的输入与输出函数(教材:C程序设计(第三版) 谭浩强),简单的做一个测试,包括正确的输入和非法的输入。只是最基础的部分,有详细的代码注释和测试结果,有问题可以互相讨论,毕竟不是C语言大神,还只是学习阶段。

/*
软件:Dev-C++5.11
系统:win7 
测试字符、字符串的输入输出函数
每一对输入输出时都是将其余输入输出代码注释掉,独立测试 
null为空格 
*/
#include<stdio.h>
int main(){
    char a;
    char b='c';     //若写为b='cd',报错: In function 'int main()': 
    char c=' ';
    char str1[12]="Hello World";
    char str2[15];

    //scanf与printf的使用
    scanf("%c",&a);          //1.若不加&,不报错,运行输入后程序崩溃;2.若将%c写为%s,除【输入:回车-输出:无输出】外,其他两者相同 
    printf("%c\n",a);
    /*
    输入:a   ab   1   12   回车 
    输出:a   a    1   1    null 
    */ 
    scanf("%s",str2);       //1.若不加&,在这里输入输出好像无影响,但在更复杂的程序中不确定;2. 若将%s写为%c,则【输入:任意字符串-输出:字符串第一个字母】 
    printf("%s\n",str2);      //若将%s改为%c【输入:任意字符串-输出:0】 
    /*
    输入:abc   qwertyuiopasdfgh   
    输出:abc   qwertyuiopasdfgh
    */                         //越界对输入输出无影响 
    printf("%c,%c,%c.\n",a,b,c); 
    //输出:null,c,null.
    //printf("%s\n",b);
    //不报错,程序崩溃 
    printf("%s,%s.\n",str1,str2);
    //输出:Hello World,随机 
    printf("%c\n",str1[0]);
    /*
    []:  0   11   >11                        
    输出:H   null 随机 
    */                //及对数组越界不做检查 

    //getchar与putchar的使用 
    putchar(b);
    //输出:c
    printf("\n");
    putchar(c);
    //输出:null 
    printf("\n");
    a=getchar();
    putchar(a);
    /*
    输入:c   ab   1   12   回车 
    输出:c   a    1   1    null
    */ 
    printf("\n");
    a=getchar();
    a=getchar();
    putchar(a);
    /*
    输入:c,回车    a,b   a,b,c   回车,c 
    输出:null      b     b       c
    */ 
    printf("\n");
    //putchar输出后不会自带换行

    //puts与gets的使用
    puts(str1);
    //输出::Hello World
    puts(str2);
    //输出:随机
    //puts(str1,str2);      报错:[Error] too many arguments to function 'int puts(const char*)'
    gets(str2);
    //gets(str1,str2);      报错:[Error] too many arguments to function 'char* gets(char*)'    
    puts(str2);
    /*
    输入:abc   qwertyuiopasdfghj
    输出:abc   qwertyuiopasdfghj
    */                          //无边界检查 
    //puts输出自带换行 
}
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值