我需要一種方法來從2d陣列中串聯字符串。 我開始創建一個50x50二維數組,初始化爲空白點(又名「」,只是空格)。然後我用fgets填充每一行,每行都有一個字符數組,它們組成一個字符串。來自2d陣列的Concat字符串
例如
H I T H E R E
H E L L O
W O R L D
和空的空間保持爲空格。
現在,當我打印它時,由於每行長度爲50個點,所以我需要打印「HI THERE HELLO WORLD」,每個單獨的字符串之後沒有所有空格。
這是我到目前爲止。
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二維陣列的外觀。
任何幫助表示讚賞。 感謝
編輯
我會添加我用來填充數組如果它可以幫助的代碼。
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++;
}
}
請清理您的代碼(使用一致的縮進,刪除不必要的內容等)。讓我很容易幫助你,不難:) – 2012-02-14 01:08:59
對不起。我第一次使用VI,並且在我看來,保持它像日食一樣乾淨並不容易:( – 2012-02-14 01:09:38
'gg = G'會縮進Vim中的所有內容 – YXD 2012-02-14 01:11:45