Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 扫描和打印字符串_C_String_Multidimensional Array - Fatal编程技术网

C 扫描和打印字符串

C 扫描和打印字符串,c,string,multidimensional-array,C,String,Multidimensional Array,第一个代码扫描三个字符串,然后再次打印这些字符串。第一个代码运行良好,并打印出字符串,如第一个图像链接所示 在第二个代码中,字符串的数量必须是可变的。因此,我扫描一个整数k,并将这个整数放入for循环。当我扫描2时,我希望这会有相同的结果,但它没有相同的效果。相反,它只扫描2个字符串,并在打印字符串之前打印出一些符号,如第二个图像链接中所示。有人对此有解释吗 #包括 #包括 #定义maxstring 100 #定义maxc 10 int main() { 字符c,文本[maxc][maxstr

第一个代码扫描三个字符串,然后再次打印这些字符串。第一个代码运行良好,并打印出字符串,如第一个图像链接所示

在第二个代码中,字符串的数量必须是可变的。因此,我扫描一个整数k,并将这个整数放入for循环。当我扫描2时,我希望这会有相同的结果,但它没有相同的效果。相反,它只扫描2个字符串,并在打印字符串之前打印出一些符号,如第二个图像链接中所示。有人对此有解释吗

#包括
#包括
#定义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;
 }