精华内容
下载资源
问答
  • C++输入字符数组时从下标1开始输入

    千次阅读 2020-06-28 11:52:27
    char str[10]; cin.getline(str+1,10);
    char str[10];
    cin.getline(str+1,10);
    
    展开全文
  • //字符数组的3种输入输出方式 int main(){ //1.scanf/printf+%s char str_1[50]; printf("%s","请输入第一个字符串:\n"); scanf("%s",str_1);//以空格或换行识别一个字符串的结束 pr..
    1. scanf/printf+%s

    2. getchar()/putchar() 前者不带参数后者带

    3. gets()/puts() 二者都带参数,为一维字符数组或二维字符数组的一维

    4. 运用指针+scanf/printf或getchar/putchar

    #include<cstdio>
    //字符数组的3种输入输出方式
    
    int main(){
    	
    //1.scanf/printf+%s
    	char str_1[50];
    	printf("%s","请输入第一个字符串:\n");
    	scanf("%s",str_1);//以空格或换行识别一个字符串的结束 
    	printf("%s","第一个字符串的内容为:\n");
    	printf("%s\n",str_1);
    
    //2.getchar()/putchar() 
    	char str_2[100];
    	printf("%s","请输入第二个字符串:\n");
    	for(int i=0;i<=30;i++){
    		str_2[i]=getchar();
    	}
    	printf("%s","第二个字符串的内容为:\n");
    	for(int j=0;j<=30;j++){
    		putchar(str_2[j]);
    	}
    	printf("\n");
    	
    //3.gets()/puts()
    	char str_3[50]; 	
    	printf("%s","请输入第三个字符串:\n");
    	getchar();//gets识别换行符作为输入结束,所以要先将上一个换行符吸收 
    	gets(str_3);
    	printf("%s","第三个字符串的内容为:\n");
    	puts(str_3);
    	
    	return 0;
    }
    
    

    在这里插入图片描述
    方法四

    #include<cstdio>
    
    int main(){
    	char str[10];
    	printf("请依次输入字符数组的10个元素:\n");
    	for(int i=0;i<=9;i++){
    		scanf("%c",str+i);
    	}
    	printf("字符数组的10个元素为:\n");
    	for(int j=0;j<=9;j++){
    		printf("%c",*(str+j));
    	}
    		
    }
    

    在这里插入图片描述

    出处:《算法笔记》(胡凡,曾磊)

    展开全文
  • C++关于字符数组按某个键停止输入

    千次阅读 2019-12-11 00:16:01
    作者最近发现了如何将输入字符数组遇到自己想遇到哪个值就停止的方法,一起来康康吧。 #include<iostream> using namespace std; int main() { char a[100]={0}; int count=0; char c; do { a[count]...

    作者最近发现了如何将输入的字符串数组遇到自己想遇到哪个值就停止的方法,一起来看看吧。

    #include<iostream>
    using namespace std;
    int main()
    {
     char a[100]={0};
     int count=0;
     char c;
    do
     {
     a[count]=getchar();
     c=a[count];
     count++;
    } while(c!=' ');
    for(int i=0;i<count;i++)
    cout << a[i];
    }
    

    这里我们用到了getchar()这个函数,这个函数不需要头文件(虽然我也不清楚为什么) 因为本来C++原始库就有。它能够读取我从键盘上输入的字符。例如上面的代码,我设置了遇到空格停止输入,并且设计了一个int型变量count来计数,以达到我想要的效果。让我们看看结果:
    在这里插入图片描述
    如我们所愿,它在遇到‘ ’的时候停止了我们对它的输入,是不是觉得很听话呢?(笑)
    事实上,不管用while还是do while,其结果都是一样的。(并不一样) 用到这个getchar(),我们就可以随心所欲的让代码乖乖听我们的话了。

    PS:作者的疑惑:为什么我用这样的代码就不行呢?

    #include<iostream>
    using namespace std;
    int main()
    {
     char a[100]={0};
     int count=0;
    do
     {
     a[count]=getchar();
     count++;
    } while(a[count]!=' ');
    for(int i=0;i<count;i++)
    cout << a[i];
    }
    

    Mark,总有一天应该会明白为什么,先在这里插个旗子。
    感谢vFairyo的提醒,我把为什么放在评论区了。

    展开全文
  • C++中的输入大致有6种方法:cin,cin.get(),cin.getline(),gets(),getchar() 1,cin 用法一:最常用的方法,接收一个字符串,无论是string还是char a[10],都是一样,但是遇到“空格”,“TAB”,"回车"都结束。 #...

    ps:本文大部分内容参考于这篇博客,在这里加入了自己对这些函数在字符数组和string变量的理解和总结。

    C++中的输入大致有6种方法:cin,cin.get(),cin.getline(),gets(),getchar()

    1,cin
    用法一:最常用的方法,接收一个字符串,无论是string还是char a[10],都是一样,但是遇到“空格”,“TAB”,"回车"都结束。

    #include<iostream>
    #include<string>
    using namespace std;
    int main()
    {
    	string a, b;
    	cin >> a >> b;
    	cout << a << endl;
    	cout << b << endl;
    	return 0;
    }
    #include<iostream>
    #include<string>
    using namespace std;
    int main()
    {
    	char a[10];
    	cin >> a ;
    	cout << a << endl;
    	return 0;
    }

    遇到空格只读入之前的数据 

     2,cin.get()

    用法一:cin.get(字符变量名)可以用来接收字符

    #include<iostream>
    #include<string>
    using namespace std;
    int main()
    {
    	char ch;
    	ch = cin.get();//或者是cin.get(ch);
    	cout << ch;
    	return 0;
    }

    用法二:cin.get(字符数组名,接收字符个数),用来接收一行字符串(可以接收空格),这个最大的用途是可以定量的接收字符的个数(但是要注意,如果定义的数组的个数是20,则实际上只能接收19个字符,还要加上'\0')
     

    这个方法只能正针对于是字符数组,不能使用string来输入。

    #include<iostream>
    #include<string>
    using namespace std;
    int main()
    {
    	char a[20];
    	cin.get(a, 20);
    	cout << a;
    	return 0;
    }

    用法三(直接copy):cin.get(无参数)没有参数主要是用于舍弃输入流中的不需要的字符,或者舍弃回车,弥补cin.get(字符数组名,接收字符数目)的不足,其实质是相当于是getchar();
     

    #include <iostream>
    using namespace std;
     
    int main(void)
    {
         
        char arr[10];
        cin.get(arr,10);
        cin.get();//用于吃掉回车,相当于getchar();
        cout<<arr<<endl;
        cin.get(arr,5);
        cout<<arr<<endl;
        system("pause");
        return 0;
    }
     
    输入abcdefghi
    输出abcdefghi
    输入abcde
    输出abcd
    请按任意键继续
     
    #include <iostream>
    using namespace std;
     
    int main(void)
    {
         
        char arr[10];
        cin.get(arr,10);
        //cin.get();//用于吃掉回车,相当于getchar(); 现在把这行注释掉试试看
        cout<<arr<<endl;
        cin.get(arr,5);
        cout<<arr<<endl;
        system("pause");
        return 0;
    }
     
    输入abcdefghi
    输出abcdefghi
    请按任意键继续

    3,cin.getline()
    可以接收空格,并且输出。浅显的用法其实和cin.get()差不多。(也不能使用string来进行输入)

    #include<iostream>
    #include<string>
    using namespace std;
    int main()
    {
    	char a[20];
    	cin.getline(a, 20);
    	cout << a;
    	return 0;
    }

    更加深层的用法其实就是cin.getline()的原型,这个函数本来有三个参数,分别是字符串的位置,接受个数,结束字符。
    如果将例子中cin.getline()改为cin.getline(m,5,'a');当输入jlkjkljkl时输出jklj,输入jkaljkljkl时,输出jk
    当用在多维数组中的时候,也可以用cin.getline(m[i],20)之类的用法:

    #include<iostream>
    #include<string>
    using namespace std;
    ​
    main ()
    {
    char m[3][20];
    for(int i=0;i<3;i++)
    {
    cout<<"\n请输入第"<<i+1<<"个字符串:"<<endl;
    cin.getline(m[i],20);
    }
    ​
    cout<<endl;
    for(int j=0;j<3;j++)
    cout<<"输出m["<<j<<"]的值:"<<m[j]<<endl;
    ​
    }
    
    

    4,getline()
    接收一个字符串,可以接收空格并输出,不过要包含#include<string>
    这也就弥补了之前cin.getline()和cin.get()的不能读取string的一个小的弊端
    这里还要将这个写法稍微改正一下getline(cin,字符串数组名);
     

    #include<iostream>
    #include<string>
    using namespace std;
    int main()
    {
    	string s;
    	getline(cin,s);
    	cout << s;
    	return 0;
    }

    5,gets()
    接收一个字符串,可以接收空格并且输出,需要包含#include<string>
    但是这个函数有些奇葩的是,这个函数必须要包含头文件string,但是这个函数却不能直接对变量string来进行赋值。
     

    #include<iostream>
    #include<string>
    using namespace std;
    int main()
    {
    	char s[10];
    	gets_s(s);
    	cout << s;
    	return 0;
    }

     这里提一下,这个函数由于不安全,在VS2015及以后的IDE中就不存在这个函数,而是用gets_s()函数来代替。具体的信息请点击这里!

    个人感觉这个函数和cin.getline()没啥区别,只不过是cin.getline中多处一个参数。

    6.getchar()
    获取单个字符,需要包含#include<string>。
    这个函数尽量少用

    #include<iostream>
    using namespace std;
    main ()
    {
    char ch;
    ch=getchar(); //不能写成getchar(ch);
    cout<<ch<<endl;
    }
    


    最后来一个各个函数对变量string的输入的总结:

    在解决一些ACM的算法题的时候,可以尽量的使用字符数组。一般我更加偏好于使用getline()函数,毕竟对各个类型的字符串都兼容。 

    展开全文
  • C++字符数组的输入输出 字符数组的输入输出可以有两种方法: 1) 逐个字符输入输出。 2) 将整个字符串一次输入或输出。例如有以下程序段: char str[20]; cin>>str; //用字符数组输入字符串 cout<<str; ...
  • C++输出字符数组

    2021-04-04 13:18:27
    C++输出字符数组
  • C/C++ 字符数组输入输出

    万次阅读 多人点赞 2017-02-24 15:09:44
    字符数组输入除了使用scanf外,还可以使用getchar或者gets;其输出除了使用printf外,还可以使用putchar或者puts。 (1)scanf输入,printf输出 scanf对字符串的输入有%s和%c两种格式。%c格式用来输入单个字符,它...
  • c++关于字符数组的处理函数

    千次阅读 2018-03-31 19:50:12
    字符串连接函数,其功能是将字符数组2中的字符串连接到字符数组1中字符串的后面,并删去字符串1后的串结束标志”\0”。需要注意的是字符数组的长度要足够大,否则不能装下连接后的字符串。 例子: #include &...
  • C++字符数组输入与输出

    千次阅读 2018-06-10 20:55:00
    (1)逐个字符输入char a[6]cin&gt;&gt;c[0]&gt;&gt;c[1]&gt;&gt;c[2]&gt;&gt;c[3]&gt;&gt;c4]&gt;&gt;c[5];(2)整个字符串一次输入char c1[5],c2[5];cin&gt;...
  • C++字符数组

    万次阅读 多人点赞 2019-05-30 22:43:54
    C++提供了一种新的数据类型——字符串类型(string类型),在使用方法上,它和char、int类型一样,可以用来定义变量,这就是字符串变量——用一个名字代表一个字符序列。 实际上,string并不是C++语言本身具有的基本类型,它...
  • 文章目录一、字符串(字符数组)二、字符的输入1. cin >> ch;2. cin.get(ch);3. ch = cin.get();4. ch = getchar();三、字符串的输入1. cin >> ch;2. cin.get(ch, 20, '\n');3. cin.getline(ch, 20, '\n'...
  • c++ 输入不定长的字符数组

    千次阅读 2020-04-19 14:54:14
    OJ题目中总会出现给定一个字符串,删除其中某些字符的题目,但输入不会给字符串的长度。 网上有的方法是先定义一个超大的数组,然后用这个大数组来储存数据,但我不喜欢这个方法,不但浪费空间,如果题目给定字符串...
  • C++字符数组与字符串 赋值问题

    千次阅读 2019-02-25 13:33:54
    问题:写一个函数将一个字符串按反序存放。在主函数中输入一个字符串,通过调用该函数,得到该字符串按反序存放后的字符串,并输出。 string c="...常见的数组就是字符数组和整型数组,今天...
  • c++中关于字符数组输入与输出(一维)

    千次阅读 多人点赞 2018-01-07 13:12:00
    最近总结了一下一维字符数组输入与输出方法,希望能有用! 首先,先了解一下输入原理:输入数据时会有一个缓冲区,它用来暂时保存键入数据,然后输入函数再从中获取数据。 一维数组的输入有两种形式:1:一个...
  • c++获得字符数组长度及字符串长度

    千次阅读 2018-01-16 11:56:18
    1. 字符输入总结 1)cin char a[20]; cin >> a; cout 遇到空格结束 2)cin.get() 用法1: cin.get(字符变量名)可以用来接收字符 #include using namespace std;  main ()  {  char ch;...
  • C++语言篇 字符数组与字符串输入

    千次阅读 2018-12-07 14:50:28
    一、在字符数组输入中,常用到cin , scanf() , gets() , cin.getline()和cin.get()函数。 注意:gets() , cin.getline()和cin.get()不能用在string类型中 cin>>通常只能读取一个单词。cin.getline()和cin....
  • C++ 字符数组及字符串处理函数 本篇文章是对C++学习过程中,关于字符串这节部分的内容进行整理,本篇主要讲解以字符数组形式存储的字符串概念,及其相关函数。C++标准库提供了兼容C语言的字符串处理函数,其头文件为...
  • C++ 字符数组 字符串【输入 输出】

    千次阅读 2019-02-19 12:15:59
    C++ 字符数组 字符串【输入 输出】
  • c++字符串与字符数组拷贝问题

    千次阅读 2018-05-21 20:24:37
    char 数组长度 用strlen();
  • C++ 字符串与字符数组 详解

    万次阅读 多人点赞 2018-03-03 19:28:22
    字符串实际上是使用 null 字符 ‘\0’ 终止的一维字符数组。因此,一个以 null 结尾的字符串,包含了组成字符串的字符。 下面的声明和初始化创建了一个 “Hello” 字符串。由于在数组的末尾存储了空字符,所以...
  • C++字符数组排序技巧

    千次阅读 2021-01-25 11:11:07
    显然会涉及到大量的字符串移动,这个是非常耗时的,所以我们可以用一个小技巧,给每个名字都带上一个整数类型的id(例如这个id就是char数组的下标),这样的话,我们只需要用特定的规则对这些id排序,就能达到对姓名按...
  • 很清楚展现了数组的定义, 初始化, 输入和输出 ,字符数组的应用,以及多维数组应用。
  • wei,中间有空格,你要储存它时就需要两个字符数组。我们可以看下面的例题; 此题引用慕课计算机程序例题 编写程序,输入一个人的名字,系统显示Hello ***.。 人名中间可能会有空格。 程序运行结果如下: 样例...
  • C++ cout字符数组和普通数组

    万次阅读 2017-05-12 02:18:27
    int ab[10] = {1,2,3,6,7}; char a[6] = {'h','a','p','p','y','\0'};...字符数组是可以用这种方式输出的,因为数组名即代表首地址,数组是一块连续的内存空间,所以能直接输出.如果是其他类型的数组则输出的是一
  • 编译不通过,cin.getline()是输入字符串的 字符数组输入 cin、cin.get()、cin.getline() 通过上边的学习,字符数组的cin输入跳过空白字符,这是cin与cin.get()、cin.getline()的区别,就不演示cin输入字符数组了。...
  • C++字符数组输入空格的方法

    万次阅读 2013-08-04 20:38:41
    那么,如何用C++字符数组输入空格呢,在此小结一下: 1、cin.get()  用法1: cin.get(字符变量名)可以用来接收字符  #include  using namespace std;  main ()  {  char ch;  ch=cin....
  • C++字符数组输入输出

    千次阅读 2017-08-03 11:13:04
    //用字符数组输入字符串 cout 在运行时输入一个字符串,如: China↙ 在内存中,数组str的状态如图5.9所示,在5个字符的后面自动加了一个结束符′\0′。 输出时,逐个输出字符直到遇结束
  • 我一开始在main函数里,循环输入字符,这个数组传入函数后在上述语句发生了死循环…… 因为字符串也是以数组形式存储的,结尾会留一个空间存储结束标识'\0' 所以我在传入数组的最后添加了'\0',问题就解决啦! ...
  • 1、字符数组和字符串的区别 字符数组和字符串都是通过char关键字来定义的; 区别就是字符串的长度是字符数目加1,因为包含了\0结束符;而字符数组的长度就是字符的数目。 2、单引号括起来的是字符,字符数组和字符...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 143,314
精华内容 57,325
关键字:

c++输入字符数组

c++ 订阅