为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

C++ C
白板的微信 2019-06-01 14:06:52
如何允许使用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 Aardvark, scanf()把所有的东西都切断Lucas..我该怎么做scanf()允许空间
查看完整描述

4 回答

?
慕田峪7331174

TA贡献1828条经验 获得超13个赞

试一试

char str[11];scanf("%10[0-9a-zA-Z ]", str);

希望能帮上忙。


查看完整回答
反对 回复 2019-06-01
?
慕雪6442864

TA贡献1812条经验 获得超5个赞

本例使用倒置扫描集,因此SCANF一直接受值,直到遇到‘\n’-换行符,从而节省空间。

#include <stdio.h>int main (int argc, char const *argv[]){
    char name[20];
    scanf("%[^\n]s",name);
    printf("%s\n", name);
    return 0;}


查看完整回答
反对 回复 2019-06-01
?
慕森卡

TA贡献1806条经验 获得超8个赞

你可以用这个

char name[20];scanf("%20[^\n]", name);

或者这个

void getText(char *message, char *variable, int size){
    printf("\n %s: ", message);
    fgets(variable, sizeof(char) * size, stdin);
    sscanf(variable, "%[^\n]", variable);}char name[20];getText("Your name", name, 20);

演示


查看完整回答
反对 回复 2019-06-01
  • 4 回答
  • 0 关注
  • 2138 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信