精华内容
下载资源
问答
  • 输入一串字符串,输出其中有多少个单词,例如 I am a boy,输出4,下面是示例代码 #include<stdio.h> int main(void) { char str[100]; int i, j; int num = 0; printf("请输入一段字符...

    输入一串字符串,输出其中有多少个单词,例如
    I am a boy,输出4,下面是示例代码

    #include<stdio.h>
    int main(void)
    {
    	char str[100];
    	int i, j;
    	int num = 0;
    	printf("请输入一段字符串:\n");
    	gets(str);
    	for (i = 0; str[i] != '\0'; i++)
    	{
    		if (str[i] == ' ')
    		{
    			j = i + 1;
    			if ((str[j] >= 'a'&&str[j] < ='z') || (str[j] >= 'A'&&str[j] <= 'Z'))
    				num++;
    		}
    
    	}
    	num += 1;
    	printf("您输入的%d", num);
    	getchar();
    	return 0;
    }
    

    这里写图片描述

    展开全文
  • C语言输入多组字符串

    千次阅读 2020-03-14 22:29:30
    代码如下(OJ一般可以的上) #include <stdio.h> int main(){ char a[100]; while (gets(a)){ puts(a); } return 0; }

    代码如下(OJ一般可以用的上)

    #include <stdio.h>
    int main(){
    	char a[100];
    	while (gets(a)){
    		puts(a);
    	}
    	return 0;
    }
    

    在这里插入图片描述

    展开全文
  • 当你输入带空格的一段字符串时,比如:“I love you”。如果你scanf输入,语句应该是这样的: char str[100]; scanf("%s",str); 而你得到的结果却是 I 由此,我们可以断定,scanf遇到空格就停止读入了。 那么...

    生活中,字符和字符串无处不见。当你输入带空格的一段字符串时,比如:“I love you”。如果你用scanf输入,语句应该是这样的:

    char str[100];
    scanf("%s",str);
    

    而你得到的结果却是

    I
    

    由此,我们可以断定,scanf遇到空格就停止读入了。
    那么我们应该如何解决这个问题呢?
    我们有两种解决方法。
    第一种:用gets函数

    char str[100];
    gets(str);
    

    得到的结果如下:

    I love you
    

    因为gets可以读入空格,遇到回车才会停止,gets对末尾回车符的处理是接收回车并把回车替换为\0;而scanf遇到空格、回车和Tab键都会认为输入结束,所以它是不能接收空格的。
    第二种方法:要用到一个格式字符:%[] -->一个字符集。

    char str[100];
    scanf("%[^\n]",str);直到输入回车键,读取才结束,当然不能超过a定义的大小,否则会出错。此命令与gets(str)效果一样。
    

    得到的结果如下:

    I love you
    

    C语言中scanf()函数提供的“%[]”格式串可以用来进行多个字符的输入,并对结束符进行自定义。对于%[]还可以用^+任意字符(包括 EOF)来结束字符串的输入,如%[^EOF]就是直到有EOF 输入,字符串才中止。
    举个例子:

    char str[100];
    scanf("%[^EOF]",str);
    

    你可以输入很多个字符串,直到输入EOF结束。虽然格式不一样,但最后得到的结果都是一样的。
    如果要你输入a和b两个字符,用下面的语句能得到吗?

    #include<stdio.h>
    int main()
    {
    	char a,b;
    	scanf("%c",&a);
    	scanf("%c",&b);
    	printf("%c,%c",a,b);
    	return 0;
    }
    

    很明显,这里是得不到a和b的,得到的结果如下所示:

    a, 
    

    这是为什么呢?
    原因主要就是在输入空格(回车or tab键)的时候,scanf遇到空格(回车or tab键)就认为输入结束。所以我们这里可以采用getchar();把空格(回车or tab键)吃掉,这样scanf输入的时候,只会碰到最后的回车才结束。

    #include<stdio.h>
    int main()
    {
    	char a,b;
    	scanf("%c",&a);
    	getchar();
    	scanf("%c",&b);
    	printf("%c,%c",a,b);
    	return 0;
    }
    

    我们也可以采用下面的方法进行操作:

    char str[100];
    scanf("%[^\n]%*c",str);///遇到回车符就认为输入结束
    printf("%s",str);
    

    总结
    这些知识点虽然非常小,但是却非常实用。比如,你做一个学生成绩管理系统,当你输入学生性别的时候,或许就会考虑到字符或者字符串的输入问题。细节决定成败!抓住了每一个小细节,你离成功又进了一步!加油吧,骚年!

    展开全文
  • 程序运行后输入字符串z回车没有反应,应该是循环里面出了毛病,刚学到指针相关内容有点晕乎。希望大神能帮我解答一下,谢谢啦 #include<stdio.h> main() { char z[20],d[20],*p=z,*q=d; gets(z); for(p=z;*p!=...

    程序运行后输入字符串z回车没有反应,应该是循环里面出了毛病,刚学到指针相关内容有点晕乎。希望大神能帮我解答一下,谢谢啦

    #include<stdio.h>
    main()
    {
    char z[20],d[20],*p=z,*q=d;
    gets(z);
    for(p=z;*p!=’\0’;p++)
    for(p–;p>=z;p–,q++)
    {
    *q=*p;
    }
    *q=’\0’;
    printf(“倒序为”);
    puts(d);
    }

    展开全文
  • printf("请输入三个字符串\n"); gets(a); gets(b); gets(c); p=a; q=b; m=c; printf("排序如下;\n"); max(p,q,m); puts(p);puts(q);puts(m); } void max(char *x,char *y,char *z) { char *t; if(strcmp...
  • gets读入字符串时,直到换行符结束,但换行符会被丢弃,然后在末尾自动添加‘\0’,而scanf读入字符串时,需要%s,然后输入时如果输入了空格会认为字符串结束,如果还有输入项,空格后的字符将作为下一个输入项...
  • gets函数是输入一个字符串的,可是不知道什么原因,在一开始的使用中没有出错,却在后面的使用中起不了任何作用,即是不执行这条语句,不知道是什么原因,请大家帮忙看一下啊,谢谢~~~~~#include#includegets...
  • 不能接收带空格的字符串输入,虽然它的指定长度是10, 但是遇到空格时即使没有满10个字符它也自动结束输入了。所以:1. gets() 可以读取空格, 直到回车才会结束输入char str[80];gets(str); //可以读取空格, ...
  • C语言字符串输入

    千次阅读 2018-11-18 00:49:17
    如果想把一个字符串读入程序,首先必须预留存储该字符串的空间,然后用输入函数获取该字符串。 1.分配空间 要做的第一件事是分配空间,以储存稍后读入的字符串。 假设编写了如下代码: char *name; scanf("%s...
  • 当前位置:我的异常网» C语言»用gets函数输入字符串时的程序的笑有关问题用gets函数输入字符串时的程序的笑有关问题www.myexceptions.net网友分享于:2013-05-17浏览:12次用gets函数输入字符串时的程序的笑问题// ...
  • C语言字符串输入函数gets_s()

    千次阅读 2020-06-26 21:11:33
    C11新增了gets_s()函数(可选),和fgets()函数类似(上一篇博客有介绍《 C语言字符串输入fgets()函数 》),一个参数限制读入的字符数。gets_s()函数的形式如下: gets_s(words,STLEN); gets_s()与fgets()的...
  • 两天的曲折调试过程开端来龙去脉正文来啦-在c语言中如何输入有空格的字符串1、scanf?2、gets?戒掉情绪 开端 刷算法题,原来以为迭代是难点,花了大半天弄懂迭代和题目的思路之后没想到被c语言带空格的字符串输入困...
  • 字符串输入函数:  scanf:每次只能接收一个单词,无法接收整行的数据,  gets:主要用于接收一整行的输入,传递参数为一个需要接收数值的数组(之后在新标准C11中被废弃了,会导致缓冲区溢出,不安全),会丢弃换...
  • #includeintmain(){intzifu(charc);...printf(“请输入串字符”);gets(str);zifu(str);return0;}intzifu(charc){if((c>=”a”&&c<=”z”)||(c>=”A”&&c<=”Z”))...
  • 字符串输入和输出#include int main() { char str[50]; gets(str); puts(str); return 0; } 指向字符的指针引用字符串: #include int main() { char str[]="i am happy"; char *s;
  • gets()函数:输入字符串,并且能输入空格,现在被弃 scanf(“%s”,buff):无法输入空格,遇到空格就终止 fgets()函数:可以输入空格,遇到回车就终止  原型:char *fgets(char *s, int size, FILE *stream); ...
  • C语言简单递归实现字符串逆序输出

    万次阅读 多人点赞 2017-01-07 15:14:19
    题目内容的 “注意” 已经侧面规定了要用递归来实现: 输入是一个可能含有空格的串说明要用gets来读入字符串,如果利用scanf的话是无法读入一段含有空格的串。
  • 该篇主要简述了C语言gets()函数以及scanf()函数对于带空格字符串输入的相关用法,如有误人之处,还请指出,小编定当万分感谢,并加以改进。 C语言的初学者应该十分清楚,在C语言中,对于一般的输入,无论是整形、...
  • C语言连续输入两个字符串

    千次阅读 2020-10-23 16:20:14
    一开始scanf来输入两个字符串,程序运行到一半总是停止,后来查阅资料后发现get函数来就没有问题了。 简直对不起C语言老师的教导????????。 由于我的是VS2019,这里的函数是gets_s,一般的编译器都是get就...
  • 在大一小白刚刚学习c语言的时候,经常会觉得输出字符串比较容易搞混,今天我来给大家总结一下。【有可能不全,欢迎大家斧正】 一、while结构 While((c=getchar())!=’\n’) 二,循环结构【前提是知道字符串中有...
  • C语言输入带空格的字符串

    万次阅读 多人点赞 2017-12-08 12:52:43
    1. gets() ,它可以接收带空格的字符串, 直到回车才结束输入 char buf[80]={0};  gets(buf); //可以读取空格, 回车结束输入 2.使用"%[^\n]" 也是可以接收输入一个带空格的字符串,直到回车结束接收 ...
  • C语言中的字符串输入输出函数

    千次阅读 2020-06-29 08:08:33
    1. 字符串输入gets、fgets、gets_s、scanf) a. 分配内存空间 a. 静态内存分配 ○ 指的是在编译时确定数组等数据类型的大小,然后由计算机分配好 ○ 在声明数组时要显式的声明数组的大小,为字符串输入...
  • C语言字符串输入问题

    千次阅读 2017-01-25 10:47:19
    C语言的字符串输入中,定义一个char型的字符串: 如果while(1)循环,那么清理键盘缓存很有必要,否则在上一次gets中输入的回车键会计算到下一个gets中导致错误。...下面是一个判断输入字符串是否是回文字符串的程序
  • #include<stdio.h> #include<stdlib.h>#include<string.h>int main(){ int i,j,k,TLen,PLen,count=0;... printf(“请输入两个字符串,以回车隔开,母串在前,子串在后:\n”); gets(T); gets§;...
  • 我们以这道题为例: ...我们就用gets()函数去实现输入 1、我们只定义一个字符串,将所有的信息都存进去 2、使用gets()函数,每次只要输入一个字符串就可以 这样的话我们就可以在输入**“end”*以后进行
  •  gets(str1); gets(str2);gets(str3);  if (strcmp(str1,str2)>0)swap(str1,str2);  if (strcmp(str1,str3)>0)swap(str1,str3);  if (strcmp(str2,str3)>0)swap(str2,str3); ...
  • scanf()在读取一串输入字符串时并不能全部读入,比如scanf()读取hello words时只能读取 hello,而不是hello words。这是因为scanf()开始读取输入以后,会在遇到的第一个空白字符空格、制表符(tab)或换行符...
  • #include&lt;stdio.h&gt; #include&lt;stdlib.h&gt; int main() ...gets_s(s); for(i=0;s[i]!='\0';i++) if(s[i]==' ') word=0; else if(word==0) { word=1; sum++; } ...
  • C语言统计一个字符串中单词的个数

    万次阅读 多人点赞 2014-05-24 01:59:28
    假定每个单词空格隔开。 例子: 输入:how are you! 输出:3 两种方法: 一: #include #include #define SIZE 20 int main() { char str[SIZE]={'\0'}; int count=0; printf("please input the...

空空如也

空空如也

1 2 3 4 5 ... 14
收藏数 265
精华内容 106
关键字:

c语言用gets输入字符串

c语言 订阅