精华内容
下载资源
问答
  • #include<iostream> #include<cstring> using namespace std; int main() { int i; int k; char a[80]; gets(a); puts(a); return 0; }

    #include<iostream>
    #include<cstring>
    using namespace std;
    int main()
    {
        int i;
        int k;
        char a[80];
        gets(a);
        puts(a);
        return 0;
    }

    展开全文
  • scanf函数与gets函数关于字符串输入换行符问题

    千次阅读 多人点赞 2018-12-18 14:34:11
    先看下代码以及运行结果(这代码从网上拷的) ... // 先读入一个整数,再读入2个  int a;  char b1[100];  char b2[100];  scanf("%d", &amp;a);  gets(b1);  gets(b2);  printf("a ...

    先看下代码以及运行结果(这代码从网上拷的)

    #include <stdio.h>

    int main()
    {
        // 先读入一个整数,再读入2个串
        int a;
        char b1[100];
        char b2[100];

        scanf("%d", &a);
        gets(b1);
        gets(b2);

        printf("a = %d\n", a);
        printf("b1 = %s\n", b1);
        printf("b2 = %s\n", b2);

        return 0;
    }

    这是使用gets函数的运行结果:

    改成scanf函数试试

       scanf("%d", &a);
       scanf("%s",b1);
       scanf("%s",b2);

    从两个运行结果来看,gets函数会读取换行符,但是读取了换行符了就不会读取后面的数据;记住,当我们输入回车键的时候其实是输入了换行回车两个字符进去的,记住是先输入回车字符后输入换行字符,但是gets函数并不接受回车字符,把它当作结束符,即遇到回车就读取之前的数据,那么后面的换行符并没有读取,这就导致后面使用的gets函数会读取到换行符,读取到了换行符就不会读取后面的字符,且把它转换为终止符。scanf函数就不会出现这种情况。

    也就是说使用gets函数得注意输入换行符的问题,一般使用getchar接受换行符,有许多人可能为问到既然scanf不会出现这种问题为什么不使用scanf函数,这里有两个原因:

    1使用gets函数更加简单对于字符串输入来说;

    2scanf不能接受空格,sanf把空格当成结束符,一般遇到有空格的字符串得使用gets函数接受读取,gets函数可以接收有空格的字符串。

    总而言之,使用C语言里的gets得注意换行符的接收,scanf函数不能接收带空格的字符串。

     

    展开全文
  • scanf与gets函数读取字符串的区别

    千次阅读 2013-01-08 18:01:30
     Description:测试scanf 与 gets 函数读入字符串的区别 */ #include #include #include #include #include int main() {  char str[10024];    /*测试scanf函数*/  //scanf读入以空格开头的字符...

    /*
      Description:测试scanf 与 gets 函数读入字符串的区别
    */
    #include<stdio.h>
    #include<stdlib.h>
    #include<memory.h>
    #include<ctype.h>
    #include<string.h>

    int main()
    {
       char str[10024];
      
       /*测试scanf函数*/
       //用scanf读入以空格开头的字符串:   123.
       scanf("%s", str);  //会忽略行开头的所有空格,并以空格、换行符结束输入.
       puts(str);
      
       getchar();//读取scanf语句执行后,缓冲区留下的换行符,
      
       /*测试gets函数*/
       //gets读入以任何字符开始的字符串,以换行符结束,
            //但注意:读入换行符,但之后会丢弃换行符并以'\0'代替.
        gets(str); //用   123. 测试
        puts(str);
       
       system("pause");
       return 0;
    }
     

    本文出自 “东方快翔” 博客,请务必保留此出处http://hustluy.blog.51cto.com/1792080/775358

    展开全文
  • scanf( )函数gets( )函数都可用于输入字符串,但在功能上有区别。若想从键盘上输入字符串"hi hello",则应该使用__gets__函数gets可以接收空格;而scanf遇到空格、回车和Tab键都会认为输入结束,所有它不能接收...
     
    

    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和回车等;

    2.相同点:

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

    例1:

    #include <stdio.h>

    main()

    {

    char ch1[10],ch2[10];

    scanf("%s",ch1);

    gets(ch2);

    }

    依次键入asd空格fg回车,asd空格fg回车,则ch1="asd\0",ch2="asd fg\0"。

    例2:

    #include <stdio.h>

    main()

    {

    char ch1[10],ch2[10],c1,c2;

    scanf("%s",ch1);

    c1=getchar();

    gets(ch2);

    c2=getchar();

    }

    依次键入asdfg回车,asdfg回车,则ch1="asdfg\0",c1='\n',ch2="asdfg\0",c2需输入。

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

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

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

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


    (转载自:http://leoenglish.blog.163.com/blog/static/1750319852011296336486/)

    展开全文
  • 1、标准输入函数读取的数据来自缓冲区,缓冲区需要按下回车,用户...1、scanf()函数允许把普通字符放在格式字符串中,除了空格以外输入要和格式字符串准确匹配【不建议放任何非格式符号在里面】 2、scanf()函数返...
  • 关于pat不可以用gets输入字符串

    千次阅读 2019-03-18 16:31:53
    也就是说当你的数组长度是n时,输入超过该长度的字符串的时候,编译不会出错,但是运行的时候会出现数组越界或者内存泄漏的错误,gets_s()需指明输入字符串的长度参数,防止数组越界),可以c++里面的cin....
  • 字符串输入函数gets()

    千次阅读 2019-05-26 10:40:33
    在前面讲过键盘输入函数 scanf 和 %s.其实还有更简单的方法,就是使用 gets() 函数,该函数的原型为: #include<stdio.h>...gets()函数的功能是从输入缓冲区中读取一个字符串存储到字符指针变量...
  • C语言的字符串输入gets()函数

    千次阅读 2020-06-26 21:13:23
    C语言的字符串输入gets()函数 字符串简介 字符串(character string)是一个或多个字符的序列。如下所示: "Zing went the strings of my heart!" 双引号不是字符串的一部分。双引号告知编译器它括起来的是字符串。...
  • C程序设计(第四版) 谭浩强 习题 6.14 个人设计习题 6.14 编一个程序,将两个...两个字符串用gets函数输入。输出的正数或负数的绝对值应是相比较的两个字符串相应字符的ASCII码的差值。代码块:#include #include <st
  • 两个字符串用gets函数输入。输出的正数或负数的绝对值应是相比较的两个字符串相应字符的ASCII码的差值。 #include<stdio.h> int main() { char s1[10],s2[10]; int i,j,c; gets(s1); gets(s2); for
  • gets字符串数组操作,使用前必须定义字符串数组。 如果输入的字符个数大于定义的数组长度,则会引起危险, 因为gets不会判断缓存是否溢出,会把数组后面的内存覆盖。 scanf(): scanf虽然也能输入字符串,但是遇到...
  • 两个字符串用gets函数读入。输出的正数或负数的绝对值应是相比较的两个字符串相应字符的ASCII码的差值。例如,”A"与“C”相比,由于”A"<“C”,应输出负数,同时由于”A"与“C”的ASCII码差值为2,因此应输出...
  •  gets函数功能:从键盘上输入字符,直至接受到换行符或EOF时停止,并将读取的结果存放在buffer指针所指向的字符数组中。  读取的换行符被转换为null值,做为字符数组的最后一个字符,来结束字符串。  注意:ge
  • C语言的字符串输入函数gets_s()

    千次阅读 2020-06-26 21:11:33
    C11新增了gets_s()函数(可选),和fgets()函数类似(上一篇博客有介绍《 C语言的字符串输入fgets()函数 》),一个参数限制读入的字符数。gets_s()函数的形式如下: gets_s(words,STLEN); gets_s()与fgets()的...
  • scanf(“%s”,&s) 相似,但不完全相同,使用scanf(“%s”,&s) 函数输入字符串时存在一个问题,就是如果输入了空格会认为字符串结束,空格后的字符将作为下一个输入项处理,但gets()函数将接收输入的整个字符串直到...
  • 转自: ...scanf( )函数和gets( )函数都可用于输入字符串...若想从键盘上输入字符串”hi hello”,则应该使用gets函数。gets可以接收空格;而scanf遇到空格、回车和Tab键都会认为输入结束,所有它不能接收空格。char stri
  • fgets、gets、scanf函数读入字符串比较

    千次阅读 2013-03-28 11:25:57
    首先,说说这个函数的使用方法。代码如下: char str[10]; fgets(str, 10, stdin);//stdin表示从输入流中读入...当输入字符大于等于10时,会数组越界。编译不会保存,甚至运行时也不会保存。但极可能因为对str数组
  • 在前面从键盘输入字符串是使用 scanf 和 %s。其实还有更简单的方法,即使 gets() 函数。该函数的原型为: 1 #include <stdio.h> 2 char *gets(char *str); 这个函数很简单,只有一个参数。参数类型为...
  • gets()函数用来从 标准输入设备(键盘)读取字符串直到 回车结束,但回车符('\n')不属于这个字符串。 调用格式为: gets(str); 其中str为字符串变量(字符串数组名或字符串指针)。 gets(str) ...
  • gets ()函数
  • 输入一个字符串,编写递归函数字符串按相反的顺序输出; #include #include void fun(char a[]) { int i,j; i=strlen(a); for (j=i-1;j>=0;j--) printf("%c",a[j]); } int main() { char a[40]; printf("请输入...
  • char str1[101]; char str2[101]; While(gets(str1) != NULL && gets(str2) != NULL ){ ...注意:gets(pStr)与scanf之间的差异:后者遇到空格’ '会结束字符接收! 与gets相对的为puts() ...
  • #include<stdio.h> #include<string.h> int main() { int swap(char *a); //声明计算函数 char a[80];...printf(“请输入一个字符串:\n”); //输出要求 gets(a); //输入字符串 i=swap(a); pr
  • 这个题目要求输入带空格的字符,首先想到的是用gets函数,但是在g++标准中gets由于可能溢出的问题已被删除,因此这里使用fgets函数来替代。 char * fgets ( char * str, int num, FILE * stream ); 第一个...
  • #include<stdio.h> #include<... printf("请输入字符串:"); gets_s(num); nixu(num); return 0; } void nixu(char* num) { int i; i = strlen(num); printf("长度为%d", i); } ...
  • 字符串输入函数

    2016-10-08 15:08:34
    字符,字符串输入函数常用的字符和字符串输入函数有五个: int fgetc(FILE *stream); int getc(FILE *stream); int getchar(void); char *gets(char *s); char *fgets(char *s, int size, FILE *stream);...
  • 在main函数输入字符串,并输出其长度 #include <stdio.h> #include <stdlib.h> void fix(char *p) { int len = 0; while (p[len] != '\0') { len++; } printf("len = %d", len); } int main() ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 49,715
精华内容 19,886
关键字:

用gets函数输入字符串