【发布时间】:2018-12-08 13:16:09
【问题描述】:
我想要一个代码,以便我一个接一个地输入一些字符串(通过按回车键)并显示它。 例如;
输入
abc
def
输出
abc
def
我也希望这个输入在一个数组中,这样我就可以选择任何字符
随时从数组中获取。例如:s[1][1] 给出 'e'。
我已经为这个问题写了一个代码。
#include <stdio.h>
#include <stdlib.h>
int main()
{
int i, j, n, m;
scanf("%d%d", &n, &m);
char a[n][m];
for (i = 0; i<n; i++)
scanf("%s", a[i]);
for (i = 0; i<n; i++) {
printf("%s", a[i]);
printf("\n");
}
}
但是对于这段代码,我的输入/输出是这样的:
输入
ab
cd
输出
abcd
cd
谁能告诉我哪里出错了?
【问题讨论】:
-
您所显示的输入缺少
n和m的输入值。显示您给n和m的输入值。 -
使用 gcc 和
c99+时,可变长度数组数组char a[n][m];没有问题,但请注意,并非所有编译器都支持它们。处理完基础知识后,查看声明/分配多个指针(例如char **a = malloc (n * sizeof *a);),使用足够大的缓冲区读取(例如char buf[1024] = ""; scanf("%s", buf);(检查返回)),然后为每个字符串分配存储空间(例如@987654334 @)。这为您的字符串提供了分配的存储空间,同时提供了对字符串索引的访问,a[1][1],
标签: c string loops multidimensional-array char