2014-09-18 50 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