我需要一种从二维数组中连接字符串的方法。 我开始创建一个50x50的2d数组,初始化为空白点(又名“”。只是空格)。然后我使用fgets填充每一行,每行都有一个字符数组,形成一个字符串。
例如
H I T H E R E
H E L L O
W O R L D
并将空格保留为空格。
现在,当我打印它时,我需要打印“HI THERE HELLO WORLD”,而不是每个单独的字符串之后的所有空格,因为每行有50个点。
这是我到目前为止所拥有的。
void printArray(char matrix[arraySize][arraySize]){
int i,j;
int tempArrayCounter =0;
int tempArray[inputLineNumber * 50];
for(i = 0; i< arraySize; i++){
for(j = 0; j<arraySize;j++){
printf("%c,",matrix[i][j]);
}
printf("\n");
}
for(j=0; j< inputLineNumber;j++){
for (i = 0; matrix[i][j] != '\0'; i++){
tempArray[tempArrayCounter] =matrix[i][j];
tempArrayCounter++;
}
}
printf("%s\n", tempArray);
}
忽略该功能的前半部分。它所做的就是展示整个50x50 2D阵列的样子。
感谢任何帮助。 感谢
修改
如果有帮助,我会添加用于填充数组的代码。
void readInput(char matrix[arraySize][arraySize]){
//inputLineNumber is the current row of the input
inputLineNumber = 0;
/*
when the line is not empty, add the line into matrix
*/
char *p;
char currentline[arraySize];
fgets(currentline,arraySize, stdin);
if((p = strchr(currentline, '\n')) != 0){
*p = '\0';
}
while(strcmp(currentline, "\0")!=0){
int k;
int inputlength = (int)strlen(currentline);
for (k = 0; k< inputlength ;k ++)
matrix[inputLineNumber][k] = currentline[k];
fgets(currentline,arraySize, stdin);
if((p = strchr(currentline, '\n')) != 0){
*p = '\0';
}
inputLineNumber++;
}
}
答案 0 :(得分:1)
将数组初始化为null char('\0'
)而不是空格,并使用循环将每一行打印为字符串。
答案 1 :(得分:0)
你似乎主要是在正确的轨道上,但你需要确保做两件事:确保正确地终止最终数组并确保在行之间插入空格。