首页 > 解决方案 > 是否可以在不使用循环的情况下使用格式说明符 %c 在 c 中输入字符串

问题描述

我知道这段代码会返回一个错误,但是无论如何都可以在不使用任何循环的情况下输入带有 %c 格式说明符的字符串?

char string[100];
scanf("%c",&string);

标签: c

解决方案


是的。您可以使用格式说明符指定要读取的字符数%c,因此您可以在已知要读取的字符串长度的特殊情况下使用它。

另请注意,%c格式指定器不会放置终止空字符,因此您必须小心不要忘记添加它。

#include <stdio.h>

int main(void) {
    char string[100] = ""; /* initialize to put a terminating null-character */
    if (scanf("%10c", string) == 1) { /* read a 10-character string */
        puts(string);
    } else {
        fputs("read error\n", stderr);
    }
    return 0;
}

推荐阅读