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

作者&投稿:冀怖 (若有异议请与网页底部的电邮联系)
C语言用如何用scanf输入带有空格的字符串~

要输入带空格的字符串,要用到一个格式字符:%[] --> 一个字符集。
“%[]”的作用是扫描字符集合:
例如:scanf(“%[^
]”,str);
具体作用是:如果输入的字符属于方括号内字符串中某个字符,那么就提取该字符;如果一经发现不属于就结束提取。该方法会自动加上一个'\0'到已经提取的字符后面。
#include
int main()
{
char str[81];
printf("Please input a string:
");
scanf("%[^
]",&str);
printf("The string is:
%s
",str);
return 0;
}

扩展资料:
字符串函数应用:
1. 连接运算 concat(s1,s2,s3…sn) 相当于s1+s2+s3+…+sn。
例:concat(‘11’,'aa’)='11aa’。
2. 求子串。 Copy(s,I,I) 从字符串s中截取第I个字符开始后的长度为l的子串。
例:copy(‘abdag’,2,3)=’bda’。
3. 删除子串。过程 Delete(s,I,l) 从字符串s中删除第I个字符开始后的长度为l的子串。
例:s:=’abcde’;delete(s,2,3);结果s:=’ae’。
4. 插入子串。 过程Insert(s1,s2,I) 把s1插入到s2的第I个位置。
例:s:=abc;insert(‘12’,s,2);结果s:=’a12bc’。
5. 求字符串长度 length(s) 例:length(‘12abc’)=5。
在ASP中 求字符串长度用 len(s)例: len("abc12")=5。
参考资料:
百度百科-扫描集

c语言中输出字符串的函数有printf("%s") puts() fputs()等,字符串中可以是任意的字符,包括空格在内,无特殊处理,如:
char str[]="hello world" ;printf("%s
", str );puts(str);fputs(str,stdin);但在输入带有空格的字符串时,只能用gets()或fgets(),而不能用scanf("%s") ,因为scanf("%s")输入字符串时,遇到空格就结束了输入。而gets()函数是以回车为结束符的输入函数,可以输入带空格的字符串。

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函数用于将输入的字符串内容存放到指定的字符数组中,输入结尾的换行符'
'被换成'\0'存储在该数组中。


举例说明如下:

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

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



如果你用scanf()函数的话,遇到空格会返回;
如果你用gets()函数的话,遇到空格就不会返回了,遇到回车才返回;
gets()格式:

char *p;
gets(p);
那么字符串就以p为首地址存放,记得给p分配足够的空间就好。

#include <stdio.h>
int main()
{
char str[100];
gets(str);
printf("%s\n",str);
return 0;
}

P.S. 敢问楼下的兄台
char *p;
gets(p);
这一句你测试了吗?你想把字符串输入到哪啊?

char str[100];
gets(str);

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


C语言如何输入一行有空格的字符串?
C语言中,处理含有空格的字符串输入有多种方法。首先,如果你使用char数组,可以这样操作:声明一个char类型的数组,如char s[100];然后利用cin.getline()函数读取输入,例如cin.getline(s,1000),这里1000是最大长度。输入例如"He llo",输出结果会保持原样。对于string类型的字符串,操作更为简洁:声...

c语言怎样才能输入一行字符,以回车作为结束标志,分别统计出大写字母,小 ...
int main() { char s[100];fgets(s, 100, stdin); \/\/ 输入一行字符,包括行尾的'\\n'int i = 0, upper = 0, lower = 0, space = 0, digit = 0, other = 0;while (s[i] != '\\n') { if (s[i] >= 'A' && s[i] <= 'Z')upper++;else if (s[i] >= 'a' &...

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 输出:H...

C语言如何输入一行有空格的字符串?
C语言中,可以用gets函数来接收输入的字符串(包含空格)。格式:gets(字符数组名);功能:gets函数用于将输入的字符串内容存放到指定的字符数组中,输入结尾的换行符'\\n'被换成'\\0'存储在该数组中。举例说明如下:char str[20]; \/\/ 定义一个字符数组,大小为20个字节 gets(str); \/\/ 将用户...

C语言如何输入一行有空格的字符串?
如果你用scanf()函数的话,遇到空格会返回;如果你用gets()函数的话,遇到空格就不会返回了,遇到回车才返回;gets()格式:char*p;gets(p);那么字符串就以p为首地址存放,记得给p分配足够的空间就好。

c语言★数据输入 输入一行包括一个正整数 n(1<=n<=10^12)。 ★数据输 ...
printf("%I64d*",i); num++; continue; } sum*=(num+1); num=0; i+=2; } sum*=(num+1); printf("%I64d\\n",n); printf("约数个数为:%d\\n",sum); return 0; }今天是涨姿势了,看了好多东西,终于做出来了。根据你的上的...

c语言怎样才能输入一行字符,以回车作为结束标志,分别统计出大写字母,小 ...
题目要求的是输入一串字符串,而你并没有一个一个去判断是什么。下面是代码,希望可以帮助到你。#include <iostream>#include <cstring>using namespace std;void main(){ char string[30]; int character=0,number=0,space=0,other=0; int i=0; cin.get(string[0]); while (string[i++]!='\\n') {...

html中,怎样在一行内换行啊?
您好,HTML语言中换行的代码是br或p\/p。1、HTML换行的代码是br,想要在哪一行换行,在那一行的代码后输入br代码即可实现换行 操作。这个方法是最简单的。2、P是空白行,一个P一行,两个P两行。3、如果有了PRE??\/PRE,从PRE到\/PRE中的内容原来怎么分的行,就怎么分,不加 br。扩展知识:HTML...

C语言怎么实现 由键盘输入一行字符,将其中每个数字字符所代表的数值累...
include <stdio.h> include <conio.h> void main(void){ char ch;int sum = 0;while((ch=getche())!='\\r')\/\/按下回车键,退出读入,并输出结果 { if (ch>='0'&&ch<='9'){ sum += ch - '0';} } printf("\\n%d\\n",sum);} ...

c如何一行一行输入
1、在第一行输入想要执行的第一个步骤c。2、按下回车键,将光标移到下一行。3、在下一行输入您想要执行的第二个步骤c。4、按下回车键,重复以上步骤,逐行输入所有的步骤c。

孝义市19529782923: C语言中如何输入带有空格的字符串?(即空格作为字符输入) -
盍樊羟甲: 用gets()函数吧 先定一个用于存字符串的数组 s][10] 再类似scanf的调用 gets(s) 这样除了回车以外的的字符串就都可以存入s中了 最基本的C知识 多看看就懂了

孝义市19529782923: 如何用c语言操作带有空格的字符串 -
盍樊羟甲: C语言中,可以用gets函数来接收输入的字符串(包含空格). 格式:gets(字符数组名);功能:gets函数用于将输入的字符串内容存放到指定的字符数组中,输入结尾的换行符'\n'被换成'\0'存储在该数组中.

孝义市19529782923: C语言输入带空格的字符串时用什么函数 -
盍樊羟甲: 用gets()就可以. gets()函数是以输入的回车键为结束标志的.

孝义市19529782923: c语言中怎样用scanf()读入带空格的字符串 -
盍樊羟甲: 现在gcc中gets()不让用了,可以使用 char str[100]; fgets(str,100,stdin);//stdin键盘输入 fputs(str,stdout);//输出或者: char str[100]; scanf("%[^\n]",str);//遇到\n换行符停止 printf("%s\n",str);输出

孝义市19529782923: C语言中,空格怎么输入?不是C++ -
盍樊羟甲: 敲键盘上的空格键输入空格. C语言中输入空格是可以实现的,但须知道输出窗口一行最多多少个字符.这样才能保证输出在一行的中间. #include "stdio.h" int main() { printf(" 在一行中间输出一句话! \n"); }头文件:#include <stdio.h>

孝义市19529782923: 如何用c语言在同一行输入两个字符串以空格隔开 -
盍樊羟甲: 先打印第一个字符串,不要用有自动换行效果的函数,再打印空格,之后再打印另一个字符串既可以了.当然也可以先将第一个字符串和空格字符串合并,再与另一个字符串合并,之后打印一次就行了.

孝义市19529782923: C语言 输入一串英文字符串(含有空格) 然后再每一行按顺序输出该字符串的单词 (每行一个单词) -
盍樊羟甲: #include <stdio.h> #include <string.h>int main() { char a[30]; char b[30]; int i=0,j=0,temp; gets(a); //获取字符串 for(i=0;i<strlen(a);i++) if(a[i]==32 ) //为空格就把之前的数组输出 {for(temp=0;temp<j;temp++)printf("%c",b[temp]);printf("\n");...

孝义市19529782923: C 语言中输入一个含空格字符的字符串应使用函数 getc,gets,getchar,scanf 是哪个??
盍樊羟甲: #include"stdio.h" main() {char a[80]; gets(a); puts(a); }

孝义市19529782923: C语言怎么样输入字符串比较好?而且字符串中要包含空格. -
盍樊羟甲: 如果要读取包含空格字符的字符串,可以使用gets或者gets_s函数.改函数以换行符为结束标志. 1、gets函数: 原型:char * gets(char * buffer); 功能:从stdin流中读取字符串,直至读到换行符或EOF时停止,并将读取的结果存放在buffer指针...

孝义市19529782923: C语言中怎么输入输出有带空格的字符串 并且能够计算你输入的字符串中有多少个字符 -
盍樊羟甲: gets()就行,直接读取字符串,getchar()一一接收字符更好用,都能达到你要求

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网