我想在多维数组中打印X,但是它的ASCII值 反复打印。 Str是一个char数组。这是一段代码:
for(i = 0; i < n; i++) {
for(j = 0; j < n; j++) {
if(str[i][j] == "X") {
printf("%s\t", 'X'); // ascii value gets printed
}
else {
printf("%d\t", str[i][j]);
}
}
printf("\n");
}
答案 0 :(得分:2)
您似乎将数据类型char
与字符串文字混淆。字符数组str[n][n]
的一个元素(假设您是字符数组)是数据类型char
的值,而不是字符串文字。
for(int i = 0; i < n; i++) {
for(int j = 0; j < n; j++) {
if(str[i][j] == 'X') {
printf("%c\t", 'X'); //format tag!
}
else {
printf("%d\t", (int)str[i][j]);
}
}
printf("\n");
}
请务必仔细阅读printf()
手册页。他们有待研究!
答案 1 :(得分:0)
第一个问题:假设str
是字符数组,在行:str[i][j] == "X"
中,您将char与字符串文字进行比较,字符串文字以终止null结尾。如果要比较字符串,可以使用strcmp
函数。如果您只想要字符,那么您应该使用str[i][j] == 'X'
第二个问题:如果要打印字符,则应使用printf("%c\t", 'X');