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中首次出现的位置的运算叫做模式匹配。串的两种最基本的存储方式是顺序存储方式和链接存储方式。
参考资料:
C语言中,可以用gets函数来接收输入的字符串(包含空格)。
格式:gets(字符数组名);
功能:gets函数用于将输入的字符串内容存放到指定的字符数组中,输入结尾的换行符'\n'被换成'\0'存储在该数组中。
举例说明如下:
char str[20]; // 定义一个字符数组,大小为20个字节
gets(str); // 将用户输入的字符串(可以包含空格)存储到字符数组str中,以回车结束输入
printf("%s", str); // 输出用户输入的字符串(包含空格)
注:使用gets函数时,需将头文件#include<stdio.h>包含到源文件中。
如果你用gets()函数的话,遇到空格就不会返回了,遇到回车才返回;
gets()格式:
char *p;
gets(p);
那么字符串就以p为首地址存放,记得给p分配足够的空间就好。
int main()
{
char str[100];
gets(str);
printf("%s\n",str);
return 0;
}
P.S. 敢问楼下的兄台
char *p;
gets(p);
这一句你测试了吗?你想把字符串输入到哪啊?
gets(str);
或者
char str[100];
scanf("%[^\n]",str);