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

如题... 如题 展开
 我来答
iiiiiiiipl
2019-06-02 · TA获得超过9923个赞
知道答主
回答量:68
采纳率:66%
帮助的人:3.9万
展开全部

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

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

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

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

#include <stdio.h>

int main()

{

char str[81];

printf("Please input a string:\n");

scanf("%[^\n]",&str);

printf("The string is:\n%s\n",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。

参考资料:

百度百科-扫描集

kaixingui2012
推荐于2017-09-07 · TA获得超过4.2万个赞
知道大有可为答主
回答量:1.4万
采纳率:81%
帮助的人:6495万
展开全部

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

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

scanf("%[^\n]",str);//直到输入回车键,读取才结束,当然不能超过a定义的大小,否则会出错。此命令与gets(str)效果一样。
printf("%s\n",str);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
香梦沉酣2012
2012-11-30 · TA获得超过3063个赞
知道大有可为答主
回答量:2686
采纳率:76%
帮助的人:1480万
展开全部
你可以采用gets();函数输入,空格也算在内的。输入对应的是puts();要使用这个函数头文件里面只需添加#include <string.h>.如果对你有用,望采纳。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
android0276
2012-11-30
知道答主
回答量:32
采纳率:0%
帮助的人:15.4万
展开全部
这样就可以了
char buf[256];
char ch;
for( int i = 0; i < sizeof(buf) && (ch = getchar()) != '\n'; i++ )
buf[i] = ch;
buf[i] = '\0';
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
love永远一号
2012-11-30
知道答主
回答量:47
采纳率:0%
帮助的人:16.6万
展开全部
你就用gets(字符串数组名),别忘了#include <string.h>
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(8)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式