精华内容
下载资源
问答
  • C语言输入字符和字符串

    千次阅读 多人点赞 2019-04-14 15:53:11
    C语言多个函数可以从键盘获得用户输入,它们分别是: scanf():和 printf() 类似,scanf() 可以输入多种类型的数据。 getchar()、getche()、getch():这三个函数都用于输入单个字符。 gets():获取一行数据,并...

    1.C语言中输入字符和字符串

    • C语言有多个函数可以从键盘获得用户输入,它们分别是:
      • scanf():和 printf() 类似,scanf() 可以输入多种类型的数据。
      • getchar()、getche()、getch():这三个函数都用于输入单个字符。
      • gets():获取一行数据,并作为字符串处理。

    2.输入单个字符

    • 输入单个字符当然可以使用scanf()这个通用的输入函数,对应的格式控制符为%c,。本节重点讲解的是getchar()、getche()和getch()这三个专用的字符输入函数,它们具有某些scanf()没有的特性,是scanf()不能代替的。

    2.1 getchar()

    • 最容易理解的字符输入函数是getchar(),它就是scanf("%c", c)的替代品,除了更加简洁,没有其它优势了;或者说getchar()就是 scanf()的一个简化版本。
          #include "stdio.h"
          #include "stdlib.h"
      
      
          int main(){
      
              // getchar()
              char c;
              c = getchar();  // 可以将上面的两行代码合并,写成 char c=getchar();
              printf("c=%c\n", c);
              return 0;
          }
      

    2.2 getche()

    • getche()就比较有意思了,它没有缓冲区,输入一个字符后会立即读取,不用等待用户按下回车键,这是它和scanf()、getchar()的最大区别。请看下面的代码:
          #include "stdio.h"
          #include "stdlib.h"
          #include "conio.h"   // getche()需要包含的头文件
      
          int main(){
      
          
              // getche()
              char cc = getche();
              printf("cc=%c\n", cc);
      
              return 0;
          }
      
    • 输入@后,getche()立即读取完毕,接着继续执行printf()将字符输出,所以没有按下回车键程序就运行结束了。注意:getche()位于 conio.h头文件中,而这个头文件是Windows特有的,Linux和Mac OS下没有包含该头文件。换句话说,getche()并不是标准函数,默认只能在 Windows下使用,不能在Linux和Mac OS下使用

    2.3 getch()

    • getch()也没有缓冲区,输入一个字符后会立即读取,不用按下回车键,这一点和 getche()相同。getch()的特别之处是它没有回显,看不到输入的字符。所谓回显,就是在控制台上显示出用户输入的字符;没有回显,就不会显示用户输入的字符,就好像根本没有输入一样。回显在大部分情况下是有必要的,它能够与用户及时交互,让用户清楚地看到自己输入的内容。但在某些特殊情况下,我们却不希望有回显,例如输入密码,有回显是非常危险的,容易被偷窥。
          #include "stdio.h"
          #include "stdlib.h"
          #include "conio.h"   // getche()需要包含的头文件
      
          int main(){
              // getch()
              char ccc = getche();
              printf("ccc=%c\n", ccc);
              return 0;
          }
      
    • 输入@后,getch()会立即读取完毕,接着继续执行printf()将字符输出。但是由于getch()没有回显,看不到输入的@字符,所以控制台上最终显示的内容为c: @。注意:和getche()一样,getch()也位于conio.h头文件中,也不是标准函数,默认只能在Windows下使用,不能在Linux 和Mac OS下使用

    2.4 三个函数的总结

    输入字符函数总结.png

    3.输入字符串

    • 输入字符串当然可以使用scanf()这个通用的输入函数,对应的格式控制符为%s;本节重点讲解的是gets()这个专用的字符串输入函数,它拥有一个scanf()不具备的特性。gets()的使用也很简单,请看下面的代码:
          #include "stdio.h"
          #include "stdlib.h"
          #include "conio.h"   // getche()需要包含的头文件
      
          int main(){
              // gets()
              char author[30], lang[30], url[30];
              gets(author);
              printf("author: %s\n", author);
              gets(lang);
              printf("lang: %s\n", lang);
              gets(url);
              printf("url: %s\n", url);
              return 0;
          }
      
    • gets()是有缓冲区的,每次按下回车键,就代表当前输入结束了,gets()开始从缓冲区中读取内容,这一点和scanf() 是一样的。gets() 和scanf()的主要区别是:gets()能读取含有空格的字符串,而scanf()不能
      • scanf()读取字符串时以空格为分隔,遇到空格就认为当前字符串结束了,所以无法读取含有空格的字符串。
      • gets()认为空格也是字符串的一部分,只有遇到回车键时才认为字符串输入结束,所以,不管输入了多少个空格,只要不按下回车键,对 gets()来说就是一个完整的字符串。

    4.总结

    • C语言中常用的从控制台读取数据的函数有五个,它们分别是scanf()、getchar()、getche()、getch()和gets()。其中scanf()、getchar()、gets()是标准函数,适用于所有平台;getche()和getch()不是标准函数,只能用于Windows。
    • scanf()是通用的输入函数,它可以读取多种类型的数据;getchar()、getche()和 getch()是专用的字符输入函数,它们在缓冲区和回显方面与 scanf()有着不同的特性,是scanf()不能替代的;
    • gets()是专用的字符串输入函数,与scanf()相比,gets()的主要优势是可以读取含有空格的字符串;
    • scanf()可以一次性读取多份类型相同或者不同的数据,getchar()、getche()、getch()和gets()每次只能读取一份特定类型的数据,不能一次性读取多份数据。
    展开全文
  • 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;
    }
    

    在这里插入图片描述

    展开全文
  • C语言存放多个字符串

    万次阅读 多人点赞 2018-08-16 14:15:52
    存放多个字符串 1.二维字符串数组: char name[4][10]={"Hello","Word","I","am"}; 例如输入10个字符串,每个字符串最大长度不超过100,读入字符串如下: #include&...

    存放一个字符串

    1.字符指针:char *str="hello";

    2.字符数组:char str[ ]="hello";

    存放多个字符串

    1.二维字符串数组:

    char name[4][10]={"Hello","Word","I","am"};

    例如输入10个字符串,每个字符串最大长度不超过100,读入字符串如下:

    #include<stdio.h>
    int main(){
       char str[10][100];
       int i;
    for(i=0;i<10;i++)
    scanf("%s",str[i]);
    
    for(i=0;i<10;i++)
    printf("%s\n",str[i]);
    return 0;
    }
    

    2.指针数组

    char *name[4]={"Hello","Word","I","am"};

    PAT乙级题1009说反话

    #include<stdio.h>
    int main(){
       char str[100][100];
       int i=0,j;
    while(scanf("%s", str[i]) != EOF)//在黑框中手动输入时,系统并不知道什么时候到达了所谓的“文件末尾“,因此需要在下一行开头用<Ctrl + Z >组合键,然后按< Enter >键的方式来告诉系统已经到了 EOF,这样系统才会结束 while
    i++;                           //while((str[i]=getchar())!='\n')
    
    for(j=i-1;j>=0;j--){
    	printf("%s",str[j]);
    	if(j!=0)
    	printf(" ");
    } 
    
    return 0;
    }

     

    展开全文
  • 然后输入n个字符串(长度 <= 1000 ,字符为小写) 输出出现次数最多的字符串及其个数,用空格隔开。 例如: 输入: 3 aaa bb bb 输出: bb 2</pre>
  • C语言输入和输出字符串的三种方式

    千次阅读 2019-03-01 21:46:32
    C语言没有string类型,只能用字符数组保存字符串,当字符数组为一维时,可以当做是“字符串”,二维时,为“字符串数组”,即多个字符串。 2、字符串的读取 (1)scanf和printf fgets的官方函数声明是: char * ...

    1、字符串的保存

    C语言没有string类型,只能用字符数组保存字符串,当字符数组为一维时,可以当做是“字符串”,二维时,为“字符串数组”,即多个字符串。

    2、字符串的读取

    (1)scanf和printf

    fgets的官方函数声明是:

    char * fgets ( char * str, int num, FILE * stream );
    在我们使用的时候第一个参数给定要输入的字符串,第二个参数给出这个字符串最大可输入的字符数,第三个字符串给出输入文件流,因为我们是从键盘输入,所以使用 标准输入流 stdin。

    展开全文
  • c语言输入输出多个字符串

    万次阅读 2015-01-15 14:01:30
    #include #include int main() { char str[50][50]; char *ps[50];... scanf()函数接受输入以后,回车被保存在输入流中了, 你在scanf()后面加一getchar()就好了。 这样会吃 掉多余的回车符,后面的g
  • #include<stdio.h> #include<string.h> int main(){ void reverse(char arr[]); char cs[20];... while(scanf("%s",cs)!=EOF){ //输入多行字符串 reverse(cs);//调用倒序输出字符串的函数 pri...
  • 直接上代码: int i, n; char *string[MAXN] = {NULL}; scanf("%d", &n); for(i = 0; i <... string[i] = (char *)malloc(sizeof(char)*MAXS);...这样就可以输入字符串并赋值给“字符串”数组 ...
  • 方法一:定义二维字符串数组 //方法一:直接定义字符串数组 ...//len是每个字符串最大的长度 //输入字符串的个数 int n; scanf(&amp;amp;amp;quot;%d&amp;amp;amp;quot;, &amp;amp;amp;amp;am
  • 不能接收带空格的字符串输入,虽然它的指定长度是10, 但是遇到空格时即使没有满10个字符它也自动结束输入了。所以:1.用 gets() 可以读取空格, 直到回车才会结束输入char str[80];gets(str); //可以读取空格, ...
  • C语言连续输入个字符串

    千次阅读 2020-10-23 16:20:14
    一开始用scanf来输入个字符串,程序运行到一半总是停止,后来查阅资料后发现用get函数来就没有问题了。 简直对不起C语言老师的教导????????。 由于我用的是VS2019,这里的函数是gets_s,一般的编译器都是用get就...
  • C语言-输入任意个字符串

    千次阅读 2015-06-01 10:59:05
    来源网站: ==== ... 方法一: //输入任意个字符串 #include #include #include #define LINE 5 int main() { int i = 0, n = LINE; int l, len; char **str;
  • 今天想尽量把疑惑自己很久的C语言中字符和字符串的问题理一理,都是一些很基本的内容。 现在就开始吧!!!! 字符型数据:字符,字符串 字符:字符串常量,字符串变量 字符串字符串常量,字符串变量 下面...
  • 关于“c语言从键盘输入字符串到指针数组”的问题

    千次阅读 多人点赞 2017-12-04 22:47:03
    关于“c语言从键盘输入字符串到指针数组”的问题今天敲了一段代码,遇到了从键盘输入多个字符串到指针数组的问题,在程序执行的时候出现了段错误的提示。本文主要涉及到了以下知识: 数据的存储 数组和指针 1.字符串...
  • C语言如何输入二维字符串数组

    千次阅读 2020-10-12 15:58:29
    二维字符串数组是由多个字符串组成的数组,可以采取循环输入一维字符串的做法为这样的二维数组赋值。 #include <stdio.h> int main() { int i,j,a[10][10]; for(i=1;i<=3;i++) scanf("%s",a[i]); ...
  • C语言 函数传递多个字符串参数

    千次阅读 2020-10-02 22:38:33
      我们需要定义一个、或多个全局变量 getStr1、getStr2、…,用来接收来自函数中的字符串。 char getStr1[100]; char getStr2[100]; // ... 多个变量 char* fun() { strcpy(getStr1 , "dealStr1 "); strcpy...
  • //将文件名列表合并为一个字符串例如:数组[a,bbb,ccc]->字符串"a,bbb,cc" char* combineFileNames(const char** fileNameList, const int count) { if (count ) { return NULL; } int i, length = 0; for (i...
  • 原因都是scanf("%s\n",leader_name);其中的格式了一个\n 所以系统会登回车输入后认为这是输入完毕,再输第二个字符串时录入第一个字符串
  • c语言连接两个字符串

    千次阅读 2013-07-31 19:58:08
    利用strcat()函数,这就不说了。     第二种方法 这种方法要s1的长度足够,不然肯定会越界 char s1[80],s2[40];  int i=0,j=0;  printf("\nInput the first string:");  scanf("%s",s1...
  • C语言实现:输入字符串的全部组合

    千次阅读 2017-01-24 03:50:47
    代码是用纯C写的,题目要求是将输入字符串的所有组合全部输出,例如输入a,b,c三个字符,则它们的组合有a, b, c, ab, ac, bc, abc. 当交换两个字符时,虽然排列顺序变动,但还是算作一个组合,即ab和ba算作同一个,...
  • c语言输入字符串有空格怎么办

    千次阅读 2020-05-14 14:07:08
    char str[50]; printf("输入一段字符串:"); fgets(str,50,stdin);...只不过用fgets输入的话,结尾会多一‘\0’,如hello world字符串长度为12 scanf的话,如hello,结尾没有‘\0’,字符串长度为5 ...
  • 玩儿转C语言:字符和字符串

    万次阅读 多人点赞 2012-11-27 23:54:02
    C语言中,利用单引号和双引号分别表示字符和字符串字符串是指一串以NUL字节结尾的零个或多个字符。因为字符串通常存储在字符数组中,所以C语言中不存在字符串类型。但在使用时,如果不能真正理解两者的本质区别...
  • C语言实现输入字符串计算单词

    千次阅读 2016-07-23 11:21:20
    C语言实现输入字符串计算单词个数 算法要求: 用户输入一串字符串,其中单词与单词之间至少一个空格甚至可能有多个空格,写一算法计算出用户每次输入的单词个数。 思路分析: 仔细分析单词什么样情况下我们算一...
  • C语言字符串输入及输出的几种方式

    万次阅读 多人点赞 2018-02-06 00:12:56
    1.字符串数组+初始化 char s1[]="array"; //字符数组 char s2[6]="array"; //数组长度=字符串长度+1,因为字符串末尾会自动添‘\0‘ printf("%s,%c\n",s1,s2[2]); //array,r 2.字符串指针+初始化 char *sp=...
  • 输入多个字符串(每个字符串长度不超过100个字符),每个字符串占一行,输入的行为“***end***”时表示输入结束 输出说明 输出其中最长的一行长度后换行再输出最长行的内容,如果最长行不止一个,则输出其中的...
  • 25.请编写一个函数fun,它的功能是:比较两个字符串的长度,(不得调用C语言提供的求字符串长度的函数),函数返回较长的字符串。若两个字符串长度相同,则返回第一个字 符串。 例如,输入:beijing shanghai(为回车...
  • C语言带空格的字符串输入(记)

    千次阅读 2020-09-04 11:26:24
    //不接受带空格的字符串输入,长度指定为10,遇到空格就停了。 所以: gets()可以读取空格,知道回车才会结束输入 char str[30]; gets(str); //可以读取空格,回车结束 使用"%[^\n]"可以接受输入带空格的字符串,...
  • C语言中怎样定义一个字符串输入输出

    万次阅读 多人点赞 2018-02-28 16:57:29
    二维字符数组,用于同时存储和处理多个字符串 输入输出方法:逐个字符输入输出:%c 整个字符串输入输出:%s 一 :用scanf输入字符串,printf输出字符串  逐个字符处理: #include int main()

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 129,636
精华内容 51,854
关键字:

c语言输入多个字符串

c语言 订阅