如何允许使用scanf输入空格?

如何允许使用scanf输入空格?

使用以下代码:

char *name = malloc(sizeof(char) + 256); printf("What is your name? ");scanf("%s", name);printf("Hello %s. Nice to meet you.\n", name);

用户可以输入他们的名字,但是当他们输入一个有如下空格的名字时Lucas Aardvarkscanf()把所有的东西都切断Lucas..我该怎么做scanf()允许空间


白板的微信
浏览 2139回答 4
4回答

慕田峪7331174

试一试char str[11];scanf("%10[0-9a-zA-Z ]", str);希望能帮上忙。

慕雪6442864

本例使用倒置扫描集,因此SCANF一直接受值,直到遇到‘\n’-换行符,从而节省空间。#include&nbsp;<stdio.h>int&nbsp;main&nbsp;(int&nbsp;argc,&nbsp;char&nbsp;const&nbsp;*argv[]){ &nbsp;&nbsp;&nbsp;&nbsp;char&nbsp;name[20]; &nbsp;&nbsp;&nbsp;&nbsp;scanf("%[^\n]s",name); &nbsp;&nbsp;&nbsp;&nbsp;printf("%s\n",&nbsp;name); &nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;0;}

慕森卡

你可以用这个char&nbsp;name[20];scanf("%20[^\n]",&nbsp;name);或者这个void&nbsp;getText(char&nbsp;*message,&nbsp;char&nbsp;*variable,&nbsp;int&nbsp;size){ &nbsp;&nbsp;&nbsp;&nbsp;printf("\n&nbsp;%s:&nbsp;",&nbsp;message); &nbsp;&nbsp;&nbsp;&nbsp;fgets(variable,&nbsp;sizeof(char)&nbsp;*&nbsp;size,&nbsp;stdin); &nbsp;&nbsp;&nbsp;&nbsp;sscanf(variable,&nbsp;"%[^\n]",&nbsp;variable);}char&nbsp;name[20];getText("Your&nbsp;name",&nbsp;name,&nbsp;20);演示
打开App,查看更多内容
随时随地看视频慕课网APP