关于#c语言#的问题:如何用一条scanf()来接收”李强 2020/07/25“这样的输入

请问各位,如何用一条scanf()来接收”李强 2020/07/25“这样的输入。

img


#include<stdio.h>

int main(int argc, char *argv[])
{
    char s[64];
    scanf("%63[^\n]s",s);
    puts(s);
    return 0;
}

用gets函数可以实现,就算输入的字符串中有空格也可以直接输入,不用像 scanf 那样要定义多个字符数组。(头文件 stdio.h)

char str[15];
gets(str);

如果要用scanf可以这样写:

# include <stdio.h>
int main(void)
{
    char str[30];
    char ch;
    printf("请输入字符串:");
    gets(str);
    printf("%s\n", str);
    scanf("%c", &ch);
    printf("ch = %c\n", ch);
    return 0;
}

输出结果是:
请输入字符串:李强 2020/07/25
李强 2020/07/25
Y
ch = Y

你可以使用如下的语句来接收输入:

char name[20];
int year, month, day;
scanf("%s %d/%d/%d", name, &year, &month, &day);

这样,输入 "李强 2020/07/25" 就会被存储到变量 name、year、month、day 中。

注意:你需要确保输入的格式与 scanf 语句中的格式字符串相匹配,否则会出现未定义的行为。这里的格式字符串 "%s %d/%d/%d" 表示先读取一个字符串,再读取三个整数。