输入一个英文字母,输出相应的二维字符图形
发布网友
发布时间:2022-04-22 23:57
我来回答
共2个回答
热心网友
时间:2023-06-28 05:45
int main(void)
{
char c, c1, x[1000];
int i, j, N;
printf("input a character:\n");
x[0] = isupper(c = getchar()) ? 'A' : (islower(c) ? 'a' : '\0');
if (x[0])
{
for (i = 0, c1 = x[0]; c1 <= c; ++c1)
{
printf("%c", c1);
x[i] = c1;
i++;
}
// 添加终结符
x[i] = '\0';
}
printf("\n");
N = strlen(x);
for (j = N - 1; j>0; j--)
{
PrintChar(x, N);
printf("%s\n", x);
}
return 0;
}
热心网友
时间:2023-06-28 05:46
char c,c1,x[]; //这里怎么能定义一个空数组x呢?!!
改成:
char c,c1,x[128]={0}; 这样就可以了追问出现乱码是不是因为没有将数组初始化?x[128]={0},先将数组初始为0就可以了是吗?
还有为什么不能用空数组让它自动确定长度呢?
追答因为你的代码从数组定义到执行,只使用一次,所以,只进行数组初始化0就可了!
如果定义一个数组,循环使用,则每次在使用前都应该进行memset( c, '\0', sizeof(c) )操作才好,或在最后一个数组元素赋值之后,进行串尾标志赋值'\0'.
C语言是不支持空数组自动增长的!!没有这个功能
必须定义一个“预计足够大的数组”进行使用,或采用指针动态分配!