用指针数组输出字符串
程序代码:
#include <stdio.h> #include <string.h> #define HEIGHT 7 // 根据下面定义,每个字母高度均是7行 const char *letters[] = { "\ \########@\ \## @\ \## @\ \###### @\ \## @\ \## @\ \## @\ ", "\ \####@\ \ ## @\ \ ## @\ \ ## @\ \ ## @\ \ ## @\ \####@\ ", "\ \ ###### @\ \## ##@\ \## @\ \ ###### @\ \ ##@\ \## ##@\ \ ###### @\ ", "\ \## ##@\ \## ##@\ \## ##@\ \#########@\ \## ##@\ \## ##@\ \## ##@\ ", "\ \ ###### @\ \## ##@\ \## @\ \## @\ \## @\ \## ##@\ \ ###### @\ " }; int main() { int i,j,k; int gap; int len; int line; int temp; printf("请输入字母的间隔(空格数):"); // 此程序输出 FISHC 五个字符,此句让你给出字符之间的间隔 scanf("%d", &gap); for (i = 0; i < HEIGHT; i++) // 一行一行打印 { for (j = 0; j < 5; j++) // 打印所有字母的某一行 { k = 0; // k 用于迭代每一行的‘#’字符 len = strlen(letters[j]) / HEIGHT; // 计算出该字母每一行有多少个字符 line = i * len; // 计算当前打印第几行 while (letters[j][line + k] != '@') // @ 这个字符标志着该行结束 { putchar(letters[j][line + k]); k++; } temp = gap; // 打印字母间的间隔(空格) while (temp--) { putchar(' '); } } putchar('\n'); } return 0; }
没有行号,表述就麻烦一点了:
1、定义一个指针数组,却没有看到在程序中使用指针,那么这个指针数组到底起到了什么作用?
2、打印所有字母的某一行:明明每个字母都是7行,这里为什么 j < 5,只有5行?
3、计算出该字母每一行有多少个字符:为什么是除以每个字母的高度 HEIGHT ?
[此贴子已经被作者于2020-9-16 09:53编辑过]