要输入带空格的字符串,要用到一个格式字符:%[] --> 一个字符集。
“%[]”的作用是扫描字符集合:
例如: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);输出