我试图在3D字符数组中存储给定输入数量的字符串集,但不能。 甚至可能使用char数组还是我应该使用其他任何概念,例如数据结构……?
int main()
{
int i,j,T,N[10];
char word[10][10][10];
scanf("%d",&T);/* No of test cases*/
for(i=0;i<T;i++)
{
scanf("%d",&N[i]); /*No of strings*/
for(j=0;j<N[i];j++)
scanf("%s",word[i][j]); /* reading the strings*/
}
return 0;
答案 0 :(得分:1)
首先:在这种情况下,最好将“ 3D字符数组”视为“ 2D字符串矩阵”。
是的,当然,这很有可能。
您的代码中有一些弱点可能会使其崩溃,很难说,因为您没有使用提供的输入数据显示完整的测试用例。
scanf()
可能会失败,在这种情况下,您不能依赖具有值的变量scanf()
与%s
将停在第一个空格字符上,这可能会导致您的扫描代码变得非常混乱一个更好的解决方案是检查扫描是否成功,并使每个字符串单独位于一行上,并使用fgets()
将整行读取到适当大小的缓冲区中,然后复制您要复制的部分想保留在矩阵中。