C语言用如何用scanf输入带有空格的字符串

要输入带空格的字符串,要用到一个格式字符:%[] --> 一个字符集。

“%[]”的作用是扫描字符集合:

例如:scanf(“%[^
]”,str);

具体作用是:如果输入的字符属于方括号内字符串中某个字符,那么就提取该字符;如果一经发现不属于就结束提取。该方法会自动加上一个'\0'到已经提取的字符后面。

#include <stdio.h>

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语言中scanf()函数提供的“%[]”格式串可以用来进行多个字符的输入,并对结束符进行自定义。 对于%[]还可以用^+任意字符(包括 eof)来结束字符串的输入,如%[^EOF]就是直到有EOF 输入,字符串才中止。
参考代码:

#include <stdio.h>
void main()
{
char str[100];

scanf("%[^
]",str);//直到输入回车键,读取才结束,当然不能超过a定义的大小,否则会出错。此命令与gets(str)效果一样。
printf("%s
",str);
}


你可以采用gets();函数输入,空格也算在内的。输入对应的是puts();要使用这个函数头文件里面只需添加#include <string.h>.如果对你有用,望采纳。

这样就可以了
char buf[256];
char ch;
for( int i = 0; i < sizeof(buf) && (ch = getchar()) != '\n'; i++ )
buf[i] = ch;
buf[i] = '\0';

你就用gets(字符串数组名),别忘了#include <string.h>

c语言中怎样用scanf()读入带空格的字符串~

现在gcc中gets()不让用了,可以使用
char str[100];
fgets(str,100,stdin);//stdin键盘输入
fputs(str,stdout);//输出

或者:
char str[100];
scanf("%[^
]",str);//遇到
换行符停止
printf("%s
",str);输出

默认是以空白符作为结束标记的,如果要用scanf读取带空格的字符串,可以这样。
以换行符作为结束标记,从而读取带空格的字符串。
#include int main() { char str[100]; scanf("%[^
]",str); printf("%s",str); return 0;}

#15717404310# c语言 循环输入 scanf 急!!!急!!!急!!! - ******
#元耍# 加 fflush(stdin); 清除多余的键.main(){ int W=0;do { printf("\nenter Y or N\n"); fflush(stdin); // W=getchar(); // 这也可以 scanf("%c",&W); printf("\n%c,%d",W,W); if(((W=='Y')||(W=='y'))!=1) break; } while(1); return 0; }

#15717404310# C语言中怎样用scanf输入不同行的数据. 比如输入:100 200 120 320 45 49 急用......... - ******
#元耍# 如果用空格 就按照格式就可以了 因为函数scanf是遇到空白符(空格、制表符、换行)结束的 所以你这个就可以用scanf("%d%d%d",&a,&b,&c); 如果你想让输入的内容只是遇到回车才结束 那就用gets函数 具体用法可以看文档

#15717404310# c语言,怎么用scanf - s输入名字,并打印出来. - ******
#元耍# scanf()函数是标准C中提供的标准输入函数,用以用户输入数据 scanf_s()函数是Microsoft公司VS开发工具提供的一个功能相同的安全标准输入函数,从vc++2005开始,VS系统提供了scanf_s().在调用该函数时,必须提供一个数字以表明最多读取多少位字符. 原因和区别: scanf()在读取数据时不检查边界,所以可能会造成内存访问越界:

#15717404310# scanf怎么用? - ******
#元耍# 使用方法: scanf(输入数据存入内存地址中); scanf(“%数据类型”,&内存地址);例:将一个数据存入内存地址a中 如果要输入一个整型的数scanf(“%d”,&a) 如果要输入一个浮点型的数scanf(“%f”,&a) 如果要输入一个字符型的数scanf(“%c”,&a)

#15717404310# C语言中,用scanf赋值的时候 - ******
#元耍# 办法很多.在输入字符的语句前面加一句getchar();或fflush(stdin)等等,但最简单的办法是在scanf()函数中的字符控制符前加一个空格!如scanf(" %c",&ch);或scanf("%d %c%s",&n,&ch,&str);.效果嘛,你试试!

#15717404310# c语言中如何用scanf输入汉字,用%什么 - ******
#元耍# %s %c都行,用支持unicode的编译器就行了,

#15717404310# 如何用C语言定义一个大数字并用scanf输入 - ******
#元耍# printf 输出 long long 在windows 环境下 %I64d 在linux 环境下 %lld

#15717404310# C语言的SCANF函数 ******
#元耍# scanf默认以空格字符划分输入(空格,tab,换行之类的) 输入数字的时候,如果你连续读入,scanf是没法区分各个输入的,除非限定输入宽度: scanf( "%1d%1d%1d", &a,&b,&c ); 这样就可以确保每个int只读取1个字符长度的数字

#15717404310# C语言字符型二维数组用scanf和gets如何输入,举个例谢谢 - ******
#元耍# #include <stdio.h> int main() { char s[3][20]; int i; printf("输入第一行:"); gets(s[0]); printf("输入第二行:"); scanf("%s",s[1]); for(i=0;i<2;i++) { printf("%s\n",s[i]); }return 0; }

#15717404310# 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);输出

  • C语言问题,关于Scanf的,空格问题
  • 答:scanf("%c",&answer) 与 scanf(" %c",&answer),后者只是在%前多了个空格,似乎没有什么区别,但使用起来区别是很大的。scanf()作单字符输入时规定只接收一个字符,但它却把回车符也作为字符对待的。这就造成程序中只有一个输入字符的scanf()语句时,问题还不大,但如果后面还跟着第二个scanf(...

  • c语言scanf(输入函数的使用方法和注意事项)
  • 答:scanf函数是C语言中的输入函数,用于从标准输入设备(例如键盘)读取数据。它是C语言中最常用的输入函数之一,也是处理输入数据的重要工具。scanf函数的使用方法 scanf函数的语法如下:```intscanf(constchar*format,...);```其中,format是一个字符串,用于指定输入数据的格式。...表示可变参数,用于...

  • c语言中的scanf 函数的用法
  • 答:功能:将从键盘输入的字符转化为“输入控制符”所规定格式的数据,然后存入以输入参数的值为地址的变量中。用scanf()函数以%s格式读入的数据不能含有空白符时,所有空白符都被当做数据结束的标志。所以题中函数输出的值只有空格前面的部分。如果想要输出包括空格在内的所有数据,可以使用gets()函数读入数据...

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

  • C语言中如何用空格符作为数据间隔符
  • 答:scanf输入的时候,默认就是用空白字符做分隔的,也包括空格。所以 不需要过多处理。只需要将格式字符之间不留空位就可以了。 也可以显式的写上空格。比如 scanf("%d%d",&a,&b);或者 scanf("%d %d",&a,&b);都是以空格作为分隔的。

  • 求问一下关于c语言scanf函数的一些问题,就是说输入数据时,到底应该用...
  • 答:而%3d %2d这种带宽度修饰时,会最多扫描宽度的字符就停止。并且如果没有扫描到宽度就碰到空白字符或者非数字时也会停止 3、%c 用来输入一个字符,不会跳过最开始的空白字符。从输入流的第一个字符开始。如果有%3c这种带宽度修饰时,会强制扫描宽度的字符,但是只会将第一个字符赋值给对应的变量。

  • c语言中如何用scanf读取一个带有空格的string
  • 答:字符串本来就不是专职用来读取字符串的,建议你需要读取带字符串的数据,可以用 string.h头的 使用char gets(char )读入 使用 char puts(char )输出 较为安全的可以使用:使用char fgets(char ,int,stdin)读入 使用 char fputs(char ,int,stdout)输出 scanf()就是到空格停止读取但是不丢弃数据 ...

  • scanf怎么用?
  • 答:scanf用途:从键盘输入数据,从键盘得到字符,放到某个变量里。格式:scanf()是C语言中的一个输入函数。与printf函数一样,都被声明在头文件stdio.h里,因此在使用scanf函数时要加上#include <stdio.h>。(在有一些实现中,printf函数与scanf函数在使用时可以不使用预编译命令#include <stdio.h>。)它...

  • c语言中 那个格式控制字符串 可以输入数字和字符
  • 答:scanf():通过格式控制符%s输入字符串。除了字符串,scanf()还能输入其他类型的数据。scanf()读取字符串时以空格为分隔,遇到空格就认为当前字符串结束了,所以无法读取含有空格的字符串。gets():直接输入字符串,并且只能输入字符串。gets()认为空格也是字符串的一部分,只有遇到回车键时才认为字符串输入...

  • C语言中 scanf("空格%c",&ch),这样写有好处吗
  • 答:scanf()函数从输入流缓冲区中读取值的,而读取时遇到回车(\n)而结束的。带空格的scanf(" %c")表示要从输入流缓冲区读两个字符,一个给空格,一个给%c。为什么加空格呢,是因为回车符(\n)也在输入流缓冲区中,所以将\n赋值给空格,以让%c被正确赋值。否则,不加空格,回车符\n会被赋值给%c...

    为传递更多家电数码信息,若有事情请联系
    数码大全网