这是我的代码:
int main(void)
{
int i, j, k, n;
char userLatter, space;
printf("please enter an uppercase letter:\n");
scanf("%c", &userLatter);
n = 9;
for (i = 0; i < 5; i++)
{
space = ' ';
for (j = 5; j > i; j--)
{
++space;
}
for (k = 0; k <= i ; k += 1)
{
printf("%c%c%c", space, userLatter, space);
}
printf("\n");
}
}
你能告诉我应该怎么做才能打印空格字符吗?
谢谢!
答案 0 :(得分:6)
你继续用这条线把空间变成别的东西:
++space;
你期望做什么?你想把它变成一个多个空格的串吗?
您可以使用printf
格式说明符来填充角色。试试这个:
int width = 4;
char letter = 'A';
printf( ":%*c:\n", width, letter );
那将输出3个空格和字母A:
: A:
如果你只是想放一个空格,不要忘记你可以在格式字符串中放一个空格。就像着名的那样:
printf( "Hello, world!\n" );
请注意那里有一个空格。
答案 1 :(得分:1)
这不是Java。 Strings
中没有C
。或者,您使用char[]
。你不能说++space
并期望space
连接它自己。 ++space
与space = space + 1
中的C
相同。如果我不正确的话,这样做会为它的ASCII值加1。 space
是一个字符,一次只能容纳一个字符。如果你想让它拥有多个字符,那么你必须使它成为一个数组。这是另一种选择:
char space[5]; //This would be done at the top when you initialize it
/* Many lines of code later */
for(j = 5; j > i; j--){
space[j] = ' ';
}
FYI n
完全没有做任何事情并浪费空间。对不起我的OCD感觉刺痛了。