C中

    char ch[100];

1.scanf("%s",ch); //输入中在遇到空格符、回车符时会认为字符串已经结束

2.cin >> ch; // 输入中在遇到空格符、回车符时会认为字符串已经结束

3.cin.getline(ch,100);// 输入中只会在遇到回车符时认为字符串结束,即可以接收空格

4.cin.getline()中如果是3个参数,最后一个参数是字符串的结束标志,此参数省略时,默认是‘\0’

4.gets(ch);// 输入时接收空格,只用于char 中

5.getchar();// 输入一个字符,通常也用来吃空格和换行

C++中

    string s;

1.cin >> s;// 输入时遇到空格符、回车符后会认为字符串已经结束

2.getline(cin,s);// 输入中接收空格

3.getline()中也可以有3个参数,与cin.getline()用法相似

更新:

由于有些版本的codeblocks不能用gets,最近刚get到了一个新操作,也可以输入带空格的字符串

scanf("%[^\n]",ch);//注意是反斜杠

感觉还是比较好用的,也比较好记,把s换一下就欧了