簡體   English   中英

C中多維數組中的字符串

[英]Strings in multidimensional array in C

如何在不使用指針的情況下用C語言為字符串定義數組? 我正在嘗試創建一個棋盤。

#include <stdio.h>
#include <string.h>

int main(void){

char board[8][8] = {{ "R1 ", "N1 ", "B1 ", "QU ", "KI ", "B2 ", "N2 ", "R2 "},

                   { "P1 ", "P2 ", "P3 ", "P4 ", "P5 ", "P6 ", "P7 ", "P8 "},
                   { "","","","","","","",""},
                   { "","","","","","","",""},
                   { "","","","","","","",""},
                   { "","","","","","","",""},
                   { "p1 ", "p2 ", "p3 ", "p4 ", "p5 ", "p6 ", "p7 ", "p8" },
                   {"r1 ", "n1 ", "b1 ", "qu ", "ki ", "b2 ", "n2 ", "r2 "}};

}

我收到一個錯誤“ char數組初始化程序中的多余元素”。 我該怎么辦 ? 我不允許使用指針。

您正在定義一個由字符串組成的2D數組。 由於字符串本身是C / C ++中的數組,因此您實際上是在創建3D數組。

有多種解決方法:

  • 您可以使用char *board[8][8]定義一個8x8的字符串指針數組。
  • 您可以使用char board[8][8][4]添加缺少的尺寸(無論單個條目有多長,它都使用相同的內存;每個條目最多可以包含3個字符和1個終止符)。

附帶說明一下,您應該使用const關鍵字,因為通常您不想修改字符串內容。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM