C 扫描和打印字符串
第一个代码扫描三个字符串,然后再次打印这些字符串。第一个代码运行良好,并打印出字符串,如第一个图像链接所示 在第二个代码中,字符串的数量必须是可变的。因此,我扫描一个整数k,并将这个整数放入for循环。当我扫描2时,我希望这会有相同的结果,但它没有相同的效果。相反,它只扫描2个字符串,并在打印字符串之前打印出一些符号,如第二个图像链接中所示。有人对此有解释吗C 扫描和打印字符串,c,string,multidimensional-array,C,String,Multidimensional Array,第一个代码扫描三个字符串,然后再次打印这些字符串。第一个代码运行良好,并打印出字符串,如第一个图像链接所示 在第二个代码中,字符串的数量必须是可变的。因此,我扫描一个整数k,并将这个整数放入for循环。当我扫描2时,我希望这会有相同的结果,但它没有相同的效果。相反,它只扫描2个字符串,并在打印字符串之前打印出一些符号,如第二个图像链接中所示。有人对此有解释吗 #包括 #包括 #定义maxstring 100 #定义maxc 10 int main() { 字符c,文本[maxc][maxstr
#包括
#包括
#定义maxstring 100
#定义maxc 10
int main()
{
字符c,文本[maxc][maxstring];
int i,j,n,k;
对于(j=0;j,第二个程序通过输入k
作为第一个字符串的开头来读取换行符,将其解释为空字符串。因为您没有初始化text
,并且假设所有字符串的长度相同,所以会打印垃圾
另外,您的循环将读取k
+1个字符串;不确定这是否是您想要的。好吧,我得到第一个代码查看第一个字符串的长度(与第二个代码一样),并假设其他字符串具有相同的长度。但是,为什么扫描字符串的数量(k)时会得到不同的结果在第二个代码中?我希望k只决定代码扫描的字符串数量。c
必须是int
。第二个代码的输出在第一个代码上面的图像链接中。第一个代码的输出图像链接在第二个代码下面。很抱歉……这不可能是答案。
#include <stdio.h>
#include <stdlib.h>
#define maxstring 100
#define maxc 10
int main()
{
char c, text[maxc][maxstring];
int i, j, n, k;
for(j=0; j<=2; j++)
{
for(i=0; (c=getchar())!='\n'; i++)
{
text[j][i]=c;
}
}
n=i;
for(j=0; j<=2; j++)
{
for(i=0; i<n; i++)
{
putchar(text[j][i]);
}
}
return 0;
}
#include <stdio.h>
#include <stdlib.h>
#define maxstring 100
#define maxc 10
int main()
{
char c, text[maxc][maxstring];
int i, j, n, k;
printf("Enter amount of strings:");
scanf("%d", &k);
for(j=0; j<=k; j++)
{
for(i=0; (c=getchar())!='\n'; i++)
{
text[j][i]=c;
}
}
n=i;
for(j=0; j<=k; j++)
{
for(i=0; i<n; i++)
{
putchar(text[j][i]);
}
}
return 0;
}