精华内容
下载资源
问答
  • C++输入字符串string类型的常用方法
    千次阅读
    2020-04-18 16:42:46

    cin输入字符串不能有空格

    string str;
    cin>>str;
    当执行上述语句时,若输入“hello world!”,则只会输出hello。

    因为cin语句输入时,遇空格结束,不能用cin输入多个单词。

    解决办法:
    ①getline(cin,str)(包含头文件#include <string)

    注意:gets()函数不能输入字符串,因为gets(s)中,s为字符串数组名或字符串指针。如果用gets(str)就会错误,str是string类型的变量,既不是数组名也不是字符串指针。
    ②利用指针调用gets()
    如①所述,gets()括号内必须为指针,除此之外,括号内还必须为char类型指针,即gets(char *)。要想用gets()输入string字符串,先定义指针:

    	string str="   ";  //n个空格,str长度就为n 
    	char *p;
    	p=&str[0];   //将str字符串的首地址传给指针p,使p指向字符串str
    	gets(p);
    	cout<<str; 
    
    更多相关内容
  • C++输入字符串的几种方式

    千次阅读 2021-08-15 16:40:16
    C++输入字符串的几种方式 输入方式是大家都需要熟悉,如果查找输入的问题建议直接看注意事项,getline第一行读取失败的情况分析。 读取输入方式 cin<< cin.getline(str, size, dilem) // 属于istream流 cin....

    C++输入字符串的几种方式

    输入方式是大家都需要熟悉,如果查找输入的问题建议直接看注意事项,getline第一行读取失败的情况分析。
    如果想要了解ACM模式下输入的绝大多数情况下,请参考连接:解决常见情况下C++终端输入问题

    读取输入方式

    • cin<<
    • cin.getline(str, size, dilem) // 属于istream流
    • cin.get()
    • getline(cin, str) // 属于stream流
    • gets() // 谨慎使用
    • getchar()

    1. cin>>

    1. 输入一个数字或字符,遇“空格”、“TAB”、“回车”就结束
    	int a;
    	char c;
    	cin >> a;
    	cin >> c;
    	cout << a << " " << c << endl;
    

    输入:3 c

    输出:3 c

    1. 接收一个字符串,遇“空格”、“TAB”、“回车”就结束
    	string s;
    	cin >> s;
    	cout << s << endl;
    

    输入:asd dfs //遇空格结束

    输出:asd

    1. 扩展,多行输入
    string a, b, c;
    	cout << "input a:";
    	cin >> a;
    	cin.ignore(1024, '\n');
    	cout << "input b:";
    	cin >> b;
    	cin.ignore(1024, '\n');
    	cout << "input c:";
    	cin >> c;
    	cout << "string a = " << a << endl
    		<< "string b = " << b << endl
    		<< "string c = " << c << endl;
    

    2. cin.getline()

    用法:

    • 接收一个字符串,可以接收空格并输出

    • cin.getline(字符指针(char*),字符个数N(int),结束符(char))

    • 当第三个参数省略时,系统默认换行符’\n’,或者为‘\0’,结束

    	char ch[10];
    	cin.getline(ch, 5);
    
    	string s = ch;
    	const char* s_to_c = s.c_str();
    
    	cout << ch << endl;
    	cout << s_to_c << endl;
    
    

    输入:saddsfs

    输出:sadd

    注意事项:

    1. 注意这里不能使用string类型 ,如果是string转char*需用c_str(),如ch = str.c_str();
    2. 接收5个字符到ch中,其中最后一个为’\0’,也占一个字符大小,所以只看到4个字符输出;

    3. cin.get()

    1. cin.get(ch),获取字符
    2. cin.get(ch,len),获取一行字符串,包括空格,也包括‘\0’
    3. cin.get(),没有参数主要用来舍弃输入流中不需要的字符,或者舍弃回车,用来弥补cin.get(ch,len)的不足
    	char ch;
    	ch = cin.get(ch); // 或者
    	ch = cin.get();
    

    4. getline()

    用法:

    • 接收一个字符串,可以接收空格并输出,需包含#include<string>
    • getline(cin,str,结束符(char))
    • 当第三个参数省略时,系统默认换行符’\n’,或者为‘\0’,结束
    	string s;
    	getline(cin, s);
    
    	cout << s << endl;
    

    输入:das das fdsa
    输出:das das fdsa

    cin 和 getline注意事项

    1. cin.getline()属于istream流,而getline()属于string流,是不一样的两个函数

    2. 当同时使用cin>>,getline()时,需要注意的是,在cin>>输入流完成之后,getline()之前,需要通过ch = cin.get();亦或者 cin.ignore();的方式将回车符清除.

      如果不这样做的话,在控制台上就不会出现getline()的输入提示,而直接跳过。这是因为cin会把‘\n’留在字符流缓存区中,而getline()读取‘\n’就结束,以此跳过第一个getline()。

    3. cin>>与getline的工作方式,流提取运算符根据它后面的变量类型读取数据,从非空白符号开始,遇到Enter、Space、Tab键时结束。getline函数从istream中读取一行数据,当遇到“\n”时结束返回

    5. gets()

    用法:接受一个字符串,可以接收空格并输出,需包含“#include“,具体用法与getline类似,注意gets()不检查字符串string的大小,因此容易造成缓存溢出的安全问题,重要场合尽量不要使用。

    6.getchar()

    用法:获取一个字符

    	char ch;
    	ch = getchar();
    	cout << ch << endl;
    

    结果就不多说了

    展开全文
  • C++输入输入字符串的几种方法

    千次阅读 2021-04-14 16:15:31
    常见的几种输入方法 cin,getchar(),cin.getline(有参数),getline(cin.s),cin.get(有参数),cin.get(无参数...用法二:接受一个字符串,遇“空格”、“Tab”、“回车”都结束 int a; char b[10]; long c; string d;

    常见的几种输入方法 cin,getchar(),cin.getline(有参数),getline(cin.s),cin.get(有参数),cin.get(无参数);gets();getchar();

    1.cin>>
    用法一:最常用、最基本的用法,输入一个各种类型的数据,可以是int,char,string,char[],long等:
    用法二:接受一个字符串,遇“空格”、“Tab”、“回车”都结束

    	int a;
        char b[10];
        long c;
        string d;
        cin>>a>>b>>c>>d;
        cout<<a<<" "<<b<<" "<<c<<" "<<d<<endl;
        //输入
        123 hellowold 123 helloworld
        //输出
        123 hellowold 123 helloworld
    

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

    
    #include <iostream>
    using namespace std;
    main ()
    {
    char ch;
    ch=cin.get(); //或者cin.get(ch);只能获取一个字符
    cout<<ch<<endl;
    }
    //​输入
    jljkljkl
    //输出
    j
    

    用法二:cin.get(字符数组名,接收字符数)用来接收一行字符串,可以接收空格

    
    #include <iostream>
    using namespace std;
    main ()
    {
    char a[20];
    cin.get(a,20); //有些类似getline。可以输入多个单词,中间空格隔开。
    cout<<a<<endl;
    }//​输入
    hello nihao nihao nihao lajd ni
    //输出
    hello nihao nihao n//这里只取了19个字符然后自己补了一个'\0'.
    
    

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

    
    #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;
    }//​输入
    nihaoniha
    //输出
    nihaoniha
    ​//​输入
    nihao
    //输出
    niha      
    请按任意键继续
     
    #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;
    }//​输入
    nihaoniha
    //输出
    nihaoniha
    
    请按任意键继续
    
    
    
     此时这里的有个回车输出,并不是存在字符里面的回车,
     而是输出第二个字符串后面的回车
     此时第二次字符串并没有输入,直接遇到了回车,
     接下一个语句。因此我们想要得到第二个字符串的输入
     就必须把我们之前那个回车给吃掉
    
    
    

    3.cin.getline()
    cin.getline() // 接受一个字符串,可以接收空格并输出

    #include <iostream>
    using namespace std;
    main ()
    {
    char m[20];
    cin.getline(m,5); //与上面基本相同。
    cout<<m<<endl;
    }
    
    输入:jkljkljkl
    输出:jklj
    接受5个字符到m中,其中最后一个为'\0',所以只看到4个字符输出;
    ​
    如果把5改成20:
    输入:jkljkljkl
    输出:jkljkljkl
    ​
    输入:jklf fjlsjf fjsdklf
    输出:jklf fjlsjf fjsdklf
    延伸:
    cin.getline()实际上有三个参数,
    cin.getline(接受字符串到m,接受个数5,结束字符)
    当第三个参数省略时,系统默认为'\0' 是‘/n’吧。
    如果将例子中cin.getline()改为cin.getline(m,5,'a')
    当输入jlkjkljkl时输出jklj,输入jkaljkljkl时,输出jk
    
    参数的辨析:
    cin.getline(m,10,'\n'); 
    cin.getline(m,10); 
    上面两个语句相等;
    可以存放空格,遇到回车时,结束
    ​//​输入
    nihao nihao nihao nihao
    //输出
    nihao nih
    cin.getline(m,10,'\0'); 
    可以存放空格和回车;//​输入
    ni hao
    ni hao
    //输出
    ni hao
    ni
    
    
    
    cin.getline(m,10,'\0');
    cin.getline(n,10,'\0');  
    当有两个这种输入的时候,我们不能进行第二个输入;
    所以这种情况的话就是只能有一个输入,剩下的输入都无效了
    例如:
     char m[20];
         char n[20];
    	 cin.getline(m,10,'\0'); //与上面基本相同。
         int a=1;
         cout<<m<<endl;
         cout<<a<<endl;
         cin>>a;
         cout<<a
         <<endl;
    
    	 cin.getline(n,10,'\0');
    	 cout<<m<<endl;
     	 cout<<n<<endl;
     	//​输入
    	nihao
    	nihao
    	//输出
    	nihao
    	nih
    	1
    	1
    	nihao
    	nih
    
    
    
    
    当用在多维数组中的时候,也可以用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;}
    ​
    请输入第1个字符串:
    kskr1
    ​
    请输入第2个字符串:
    kskr2
    ​
    请输入第3个字符串:
    kskr3
    ​
    输出m[0]的值:kskr1
    输出m[1]的值:kskr2
    输出m[2]的值:kskr3
    
    

    4.getline()
    同理也可以对string进行输入赋值

    
    string str;
    getline(cin,str);
    cout<<str<<endl;
    }//输入
    nihao nihao nihao nihao//VC6中有个bug,需要输入两次回车。
    //输出
    nihao nihao nihao nihao
    
    和cin.getline()类似,但是cin.getline()属于istream流
    而getline()属于string流,是不一样的两个函数
    
    

    5.gets()
    gets()// 接受一个字符串,可以接收空格并输出,需包#include"string"
    所以这个函数只能用于字符串数组,不能用于string。

    
    #include<iostream>
    #include<string>
    using namespace std;
    main ()
    {
    char m[20];
    gets(m); //不能写成m=gets();
    cout<<m<<endl;
    }
    ​
    输入:jkljkljkl
    输出:jkljkljkl
    ​
    输入:jkl jkl jkl
    输出:jkl jkl jkl
    ​
    类似cin.getline()里面的一个例子,gets()同样可以用在多维数组里面:
    ​
    #include<iostream>
    #include<string>
    using namespace std;
    ​
    main ()
    {
    char m[3][20];
    for(int i=0;i<3;i++)
    {
    cout<<"\n请输入第"<<i+1<<"个字符串:"<<endl;
    gets(m[i]);
    }
    ​
    cout<<endl;
    for(int j=0;j<3;j++)
    cout<<"输出m["<<j<<"]的值:"<<m[j]<<endl;}
    ​
    请输入第1个字符串:
    kskr1
    ​
    请输入第2个字符串:
    kskr2
    ​
    请输入第3个字符串:
    kskr3
    ​
    输出m[0]的值:kskr1
    输出m[1]的值:kskr2
    输出m[2]的值:kskr3
    ​
    自我感觉gets()和cin.getline()的用法很类似,
    只不过cin.getline()多一个参数罢了;
    这里顺带说明一下,对于本文中的这个kskr1,kskr2,kskr3的例子,
    对于cin>>也可以适用,
    原因是这里输入的没有空格,如果输入了空格,
    比如“ks kr jkl[回车]”那么cin就会已经接收到3个字符
    串,“ks,kr,jkl”;再如“kskr 1[回车]kskr 2[回车]”,
    那么则接收“kskr,1,kskr”;这不是我们所要
    的结果!而cin.getline()gets()因为可以接收空格,
    所以不会产生这个错误;
    
    

    6.getchar()
    单个字符的输入,写法固定并记住

    	 char a;
         a=getchar();//不能写成getchar(a)
         cout<<a<<endl;
         //输入
         a
         //输出
         a
    

    //getchar()是C语言的函数,C++也可以兼容,但是尽量不用或少用;

    展开全文
  • c++输入字符串和数字以逗号隔开

    千次阅读 2020-09-02 21:09:54
    以一个问题为例对“c++输入字符串和数字以逗号隔开”进行具体说明。 例:实现一个学生信息处理程序,计算一个学生的四年平均成绩。 要求实现一个代表学生的类,并且类中所有成员变量都是【私有的】。 补充下列...

    以一个问题为例对“c++输入字符串和数字以逗号隔开”进行具体说明。

    例:实现一个学生信息处理程序,计算一个学生的四年平均成绩。

    要求实现一个代表学生的类,并且类中所有成员变量都是【私有的】。

    补充下列程序中的 Student 类以实现上述功能。

    #include <iostream>
    #include <string>
    #include <cstdio>
    #include <cstring>
    #include <sstream>
    #include <cstdlib>
    using namespace std;
    
    class Student {
    // 在此处补充你的代码
    };
    
    int main() {
    	Student student;        // 定义类的对象
    	student.input();        // 输入数据
    	student.calculate();    // 计算平均成绩
    	student.output();       // 输出数据
    }

    输入

    输入数据为一行,包括:
    姓名,年龄,学号,第一学年平均成绩,第二学年平均成绩,第三学年平均成绩,第四学年平均成绩。
    其中姓名为由字母和空格组成的字符串(输入保证姓名不超过20个字符,并且空格不会出现在字符串两端),年龄、学号和学年平均成绩均为非负整数。信息之间用逗号隔开。

    输出

    输出一行数据,包括:
    姓名,年龄,学号,四年平均成绩。
    信息之间用逗号隔开。

    样例输入

    Tom Hanks,18,7817,80,80,90,70

    样例输出

    Tom Hanks,18,7817,80

    完整的代码

    #include <iostream>
    #include <string>
    #include <cstdio>
    #include <cstring>
    #include <sstream>
    #include <cstdlib>
    using namespace std;
    
    class Student {
    	// 在此处补充你的代码
    private:
    	int a1, a2, a3, a4;
    	int age, num;
    	double aver;
    	string name;
    public:
    	Student() {};
    	~Student() {};
    	void input() {
    		//Tom Hanks, 18, 7817, 80, 80, 90, 70
    
    		getline(cin, name, ',');
    		 
    		cin >> age;// cout << "age";
    		int a = 0;
    		while (cin.get() == ',') {
    			switch (a) {
    			case 0: cin >> num; a = a + 1; break; //cout << "学号";
    			case 1: cin >> a1; a = a + 1; break;
    			case 2: cin >> a2; a = a + 1; break;
    			case 3: cin >> a3; a = a + 1; break;
    			case 4: cin >> a4; a = a + 1; break;
    			default:break;
    			}
    		}
    		cout << endl;
    	}
    	void calculate() {
    		aver = 1.0*(a1 + a2 + a3 + a4)/4;
    	}
    	void output() {
    		//cout << name<<"," << age<<"," << num <<","<< a1 << "," <<a2 << "," <<a3 << "," <<a4 << endl;
    		cout << name << "," << age << "," << num << "," << aver << endl;
    		//cout << aver << endl;
    	}
    };
    
    int main() {
    	Student student;        // 定义类的对象
    	student.input();        // 输入数据
    	student.calculate();    // 计算平均成绩
    	student.output();       // 输出数据
    	system("pause");
    }

     

    展开全文
  • c++输入字符串的多种方法总结

    万次阅读 多人点赞 2017-03-24 11:46:14
    c++字符串输入
  • C++输入字符串以换行结束

    千次阅读 2019-09-24 14:51:36
    #include "pch.h" #include <iostream> #include <string> using namespace std; int main() { string str; getline(cin, str); cout << str << endl;...#include ...
  • C++字符串输入方式

    千次阅读 2022-03-18 16:02:34
    C++字符及字符串的几种输入方法
  • 字符串一直是一个重点加难点,很多笔试面试都会涉及,带空格的字符串更是十分常见,现在对字符串输入问题进行一下总结。 C++用cin输入的时候会忽略空格以后的字符,比如 char a[100]; cin>>a; C++用cin输入的...
  • C++输入字符串的几种方法

    千次阅读 2021-01-12 14:09:27
    C++输入字符串的几种方法 C++的字符串输入方式有 1.cin>> 2.cin.get() 3.cin.getline() 4.getline() 5.gets() cin 第一种用法是逐个输入数字或者字符,中间用空格隔开。 第二种用法是读入一个字符串,遇到...
  • C++字符串常用输入方法

    千次阅读 2021-12-03 19:32:22
    字符串常用输入方法总结 前言: 个人是从两个角度去比较思考总结的 (1)能否输入空格 (2)输入支持的是 ①单个字符 ②还是char[]字符数组 ③还是string类字符串 1.scanf("%c",&s); 只输入char型的单个字符 #...
  • 第一行输入有多少个字符串,后面输入对应的字符串,输出每个字符串输出一个数字,对应该字符串中数字的个数
  • 从键盘输入一串由数字组成的字符串,例如“234567910”,设计一个高效算法,输出字符串中的升序序列,该升序序列中的数字要么是差值为1的等差序列,要么只允许有一对相邻的数字差值为2,此时将该漏掉的数字找到并...
  • 输入字符串解析为16进制输出
  • 主要介绍了C++中string替换所有指定字符串的实例代码,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
  • C++ 输入字符串按字典顺序排序

    千次阅读 2019-10-08 18:44:00
    C++输入字符串的几种方法 C++ 字符串与字符数组 详解 #include <algorithm> #include <iostream> #include <string> #include <vector> using namespace std; void PrintF...
  • 以下是对C++输入一个字符串,把其中的字符按照逆序输出的两种方法进行了详细的分析介绍,需要的朋友可以过来参考下
  • 本文实例讲述了C++实现将一个字符串中的字符替换成另一个字符串的方法,分享给大家供大家参考。具体方法如下: 题目要求: 原地实现字符串中的每个空格替换成” ″,例如输入”We are happy”, 输出”We are happy...
  • 主要介绍了C++实现判断字符串是否回文,其中采用了数据结构中栈以及过滤字符等技术,,需要的朋友可以参考下
  • C++ 带空格字符串输入与分割

    千次阅读 2021-03-15 22:37:12
    C++ 带空格字符串输入与分割 今天刷到一个字符串的题,卡了我好几个小时,做到后来都开始怀疑自己了,明明是道不怎么难的题怎么被我搞那么久,心痛啊! 废话不多说,下面就把本次惨痛教训中学到的知识点列出来 带...
  • C++字符串的几种输入方法(string和字符数组)

    千次阅读 多人点赞 2021-07-19 17:14:56
    用法一:最常用的方法,接收一个字符串,无论是string还是char a[10],都是一样,但是遇到“空格”,“TAB”,"回车"都结束。 #include<iostream> #include<string> using namespace std; int main() { ...
  • #include <iostream> #include <stdlib.h> #include <string> #include <vector> #include <algorithm> using namespace std; int main() { string tempStr;...string&...
  • 我一开始在main函数里,循环输入字符,这个数组传入函数后在上述语句发生了死循环…… 因为字符串也是以数组形式存储的,结尾会留一个空间存储结束标识'\0' 所以我在传入数组的最后添加了'\0',问题就解决啦! ...
  • C++中常见的几种输入字符串的方法

    千次阅读 多人点赞 2020-06-12 20:41:49
    C++ 中常见的几种输入字符串的方法如下: cin、cin.get()、cin.getline()、getline()、gets()、getchar() 1.cin>> 用法一:最常用、最基本的用法,输入一个数字: int a,b; cin>>a>>b; cout<&...
  • C++如何输入字符串

    千次阅读 2019-08-11 09:56:00
    C++输入字符串的方式和其他类型有所不同。 1、cin输入字符串,这是最简单,也是最有效的方法,如果没有特殊说明,可以每次都选择这种方法输入字符串。 2、scanf输入字符串,定义一个数组char str[100],然后以...
  • C/C++的各种标准输入字符串方法一些前置知识C语言的IO函数输入、输出字符串scanf和printfgets、fgets和putsC++的IO函数输入、输出字符串cin和coutcin.getline()、cin.get()留在输入队列中换行符的处理方法getline()...
  • C++字符串-输出字符串的每个字符

    千次阅读 2022-03-31 22:07:30
    C++字符串-输出字符串的每个字符

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 288,350
精华内容 115,340
关键字:

c++输入字符串

c++ 订阅