2014-09-18 72 views
-2

我有這個嵌套循環工作,但我在最後打印額外的字符,因爲我不知道如何終止二維數組中的空字符。以下是代碼:終止二維數組的空字符

char arr[100]; 
char twoDArray[100][100]; 
int y = 0, x = 0, h= 10, w = 10,j=0; 
for(y = 0; y <= h; y++) 
{ 
    for(x = 0; x <= w; x++) 
    { 
    twoDArray[y][x] = arr[j]; 
    printf("%c", twoDArray[y][x]); 
    j++; 
    } 
} 
+0

哪個'null'字符? – ericbn 2014-09-18 16:33:54

+0

你的數據在哪裏被初始化?此示例僅顯示正在使用的空數組。另外,你的意思是在for循環中使用'<='?通常會導致使用「額外」數據,因爲C中的數組是基於0的,並且您可以使用的最大值是0到長度-1。 – 2014-09-18 16:36:37

+0

對於'twoDArray'因爲這就是我想要打印 – Kenneth 2014-09-18 16:37:01

回答

1

對於c字符後面的空字符被使用。

'\0' 

查看下面的鏈接。

http://www.tutorialspoint.com/cprogramming/c_strings.htm

String termination - char c=0 vs char c='\0'

只是比較環路。

if(twoDArray[y][x]=='\0') 
{ 
    break; 
} 
+0

謝謝你做到了! – Kenneth 2014-09-18 16:40:54

+0

如果它解決了您的問題並回答了問題,您應該將其答案標記爲已接受。 – 2014-09-18 16:42:31

+0

我知道@RyanJ我只是因爲某種原因等了1分鐘。無論如何,感謝您的幫助..! – Kenneth 2014-09-18 16:43:28