zoukankan      html  css  js  c++  java
  • scanf(),gets(),getchar()

    scanf()与gets()区别:

    scanf( )函数和gets( )函数都可用于输入字符串,但在功能上有区别。若想从键盘上输入字符串"hi hello",则应该使用gets()函数。

    gets可以接收空格;而scanf遇到空格、回车和Tab键都会认为输入结束,所有它不能接收空格。

    char string[15]; gets(string); /*遇到回车认为输入结束*/

    scanf("%s",string); /*遇到空格认为输入结束*/

    所以在输入的字符串中包含空格时,应该使用gets输入。


    scanf和gets获取字符串时的区别

    在C语言中,能构获取字符串的函数至少有两个:

    1.scanf()

    所在头文件:stdio.h

    语法:scanf("格式控制字符串",变量地址列表);

    接受字符串时:scanf("%s",字符数组名或指针);

    2.gets()

    所在头文件:stdio.h

    语法:gets(字符数组名或指针);

    两者在接受字符串时:

    1.不同点:

    scanf不能接受空格、制表符Tab、回车等;

    而gets能够接受空格、制表符Tab和回车等;

    scanf返回的为接收到的变量值的个数;

    gets(str) 在读取成功的时候返回str,str保存的是成功读入的内容 在失败的时候返回NULL,str的内容保持不变;

    2.相同点:

    字符串接受结束后自动加''。

    例1:

    #include <stdio.h>
    
    int main()
    
    {
    
    char ch1[10];
    
    scanf("%s",ch1);
    
    printf("%s",ch1);
    
    }
    #include <stdio.h>
    
    int main()
    
    {
    
    char ch2[10];
    
    gets(ch2);
    printf("%s",ch2);
    }

    分别键入asd空格fg回车,asd空格fg回车,则ch1="asd",ch2="asd fg"。

    scanf :当遇到回车,空格和tab键会自动在字符串后面添加'',但是回车,空格和tab键仍会留在输入的缓冲区中。

    gets:可接受回车键之前输入的所有字符,并用' '替代 ''.回车键不会留在输入缓冲区中

    gets()用到读取字符串,用回车结束输入

    scanf()可以读取所有类型的变量

    gets()与getchar()

    getchar()只接受一个字符

    int main()
    {
    char c;
    c=getchar();
    printf("%c",c);
    }

    连续输出,作用同gets()

    int main()
    {
    char c;
    while((c=getchar())!=' ')
      printf("%c",c);
    }

  • 相关阅读:
    linux 安装node.js 和npm
    laravel 记录
    apache-jmeter 使用记录
    将MD5值压缩成8位32进制生成8位长度的唯一英文数字组合字符串
    api接口开发跨域注意事项和设置
    阿里云服务器报 Liunx异常文件下载处理办法
    OpenGL ES 入门
    Spring AOP——Spring 中面向切面编程
    SpringIOC 二—— 容器 和 Bean的深入理解
    静态代理和动态代理
  • 原文地址:https://www.cnblogs.com/home123/p/7519254.html
Copyright © 2011-2022 走看看