C语言如何输入一行有空格的字符串?

从键盘输入 中间有空格 每两个空格的之间的作为一段字符串,要能读到该行所有的字符串 怎么做啊?

C语言输入一行有空格的字符串的方法:

1、对于char

char s[100];

cin.getline(s,1000);//第二个参数表示允许输入的最大长度while(cin.getline(s,1000));

输入输出样例

输入:He llo

输出:He llo

2、对于string

string s;

getline(cin,s);while(getline(cin,s));

输入输出样例

输入:He llo

输出:He llo

扩展资料

字符串主要用于编程,概念说明、函数解释、用法详述见正文,这里补充一点:字符串在存储上类似字符数组,所以它每一位的单个元素都是可以提取的,如s=“abcdefghij”,则s[1]=“a”,s[10]="j",而字符串的零位正是它的长度。

这可以给我们提供很多方便,高精度运算时每一位都可以转化为数字存入数组。

字符串或串(String)是由数字、字母、下划线组成的一串字符。一般记为 s=“a1a2···an”(n>=0)。它是编程语言中表示文本的数据类型。在程序设计中,字符串(string)为符号或数值的一个连续序列,如符号串(一串字符)或二进制数字串(一串二进制数字)。

通常以串的整体作为操作对象,如:在串中查找某个子串、求取一个子串、在串的某个位置上插入一个子串以及删除一个子串等。

两个字符串相等的充要条件是:长度相等,并且各个对应位置上的字符都相等。设p、q是两个串,求q在p中首次出现的位置的运算叫做模式匹配。串的两种最基本的存储方式是顺序存储方式和链接存储方式。

参考资料:

百度百科-字符串

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-10-15

C语言中,可以用gets函数来接收输入的字符串(包含空格)。


格式:gets(字符数组名);

功能:gets函数用于将输入的字符串内容存放到指定的字符数组中,输入结尾的换行符'\n'被换成'\0'存储在该数组中。


举例说明如下:

char str[20];  // 定义一个字符数组,大小为20个字节
gets(str);     // 将用户输入的字符串(可以包含空格)存储到字符数组str中,以回车结束输入
printf("%s", str);  // 输出用户输入的字符串(包含空格)

注:使用gets函数时,需将头文件#include<stdio.h>包含到源文件中。

第2个回答  推荐于2017-09-27
如果你用scanf()函数的话,遇到空格会返回;
如果你用gets()函数的话,遇到空格就不会返回了,遇到回车才返回;
gets()格式:

char *p;
gets(p);
那么字符串就以p为首地址存放,记得给p分配足够的空间就好。本回答被提问者采纳
第3个回答  2008-05-17
#include <stdio.h>
int main()
{
char str[100];
gets(str);
printf("%s\n",str);
return 0;
}

P.S. 敢问楼下的兄台
char *p;
gets(p);
这一句你测试了吗?你想把字符串输入到哪啊?
第4个回答  2008-05-17
char str[100];
gets(str);

或者
char str[100];
scanf("%[^\n]",str);