c - 如何以最简单的方式使用 scanf() 引入多个字符串?
问题描述
如何使用 scanf() 在输入和输出中引入多个字符串?是否可以在不使用 100 个符号(例如a, b, c, d, e -> "%c %c %c", a, b, c
等)的情况下做到这一点?我输入这个:
#include <stdio.h>
int main()
{
char user_str[20];
scanf("%s", user_str);
printf("%s", user_str);
return 0;
}
哪个适用于作为输入和输出的第一个单词,但是如果我想在文本中引入 100 个带空格的命题,我该如何以最简单的方式键入代码来做到这一点?
解决方案
正如@Yunnosch 所说,最好的方法是使用循环和数组。考虑一个简单的情况,您要读取 4 个最长为 19 个字符的字符串。我们有长度 20 为终止空字符留出空间。
#include <stdio.h>
int main() {
char input[4][20];
for (int i = 0; i < 4; i++) {
scanf("%19s", input[i]);
}
for (int i = 0; i < 4; i++) {
printf("%s\n", input[i]);
}
}
这很容易扩展到 100 个字符串。如果您使用了足够的内存,您可能希望使用malloc
它来分配它,但相同的基本模式将继续。
推荐阅读
- javascript - Jquery addclass 在任何浏览器中都不起作用
- php - 从数组中填充 PHP 表
- jquery - 使用 Slick(jQuery 插件)slickGoTo 不起作用
- php - mysqli_real_connect():服务器向客户端发送未知字符集(255)。请向开发人员报告
- c# - 在子列表中过滤 LINQ 实体框架
- sql - 在 SQL 中迭代行操作
- php - 无法根据需要评估表达式匹配
- java - Java泛型:定义泛型类时的通配符和类型参数语法
- tidb - MySQL `show processlist` 和 TiDB `show processlist` 有什么区别?
- image-processing - caffe 通过 python 创建网络