这可能是我写过的最蠢的代码,主要是现在懒得改了,还是就这样放出来吧。
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
void print_row(char* str, int row) {
char c;
for (int i = 0; i < strlen(str); i++) {
c = *(str + i);
switch (c) {
case 'A':
switch (row) {
case 1:
printf(" ");
break;
case 2:
printf(" /\ ");
break;
case 3:
printf(" / \ ");
break;
case 4:
printf(" /----\ ");
break;
case 5:
printf("/_/ \_\");
break;
}
break;
case 'B':
switch (row) {
case 1:
printf(" ____ ");
break;
case 2:
printf("| __ ) ");
break;
case 3:
printf("| _ \ ");
break;
case 4:
printf("| |_) |");
break;
case 5:
printf("|____/ ");
break;
}
break;
case 'C':
switch (row) {
case 1:
printf(" ____ ");
break;
case 2:
printf(" / ___|");
break;
case 3:
printf("| | ");
break;
case 4:
printf("| |___ ");
break;
case 5:
printf(" \____|");
break;
}
break;
case 'D':
switch (row) {
case 1:
printf(" ____ ");
break;
case 2:
printf("| _ \ ");
break;
case 3:
printf("| | | |");
break;
case 4:
printf("| |_| |");
break;
case 5:
printf("|____/ ");
break;
}
break;
case 'E':
switch (row) {
case 1:
printf(" _____ ");
break;
case 2:
printf("| ____|");
break;
case 3:
printf("| _| ");
break;
case 4:
printf("| |___ ");
break;
case 5:
printf("|_____|");
}
break;
case 'F':
switch (row) {
case 1:
printf(" _____ ");
break;
case 2:
printf("| ___|");
break;
case 3:
printf("| |_ ");
break;
case 4:
printf("| _| ");
break;
case 5:
printf("|_| ");
break;
}
break;
case 'G':
switch (row) {
case 1:
printf(" ____ ");
break;
case 2:
printf(" / ___|");
break;
case 3:
printf("| | _ ");
break;
case 4:
printf("| |_| |");
break;
case 5:
printf(" \____|");
break;
}
break;
case 'H':
switch (row) {
case 1:
printf(" _ _ ");
break;
case 2:
printf("| | | |");
break;
case 3:
printf("| |_| |");
break;
case 4:
printf("| _ |");
break;
case 5:
printf("|_| |_|");
break;
}
break;
case 'I':
switch (row) {
case 1:
printf(" ____ ");
break;
case 2:
printf("|_ _|");
break;
case 3:
case 4:
printf(" | | ");
break;
case 5:
printf("|____|");
break;
}
break;
case 'J':
switch (row) {
case 1:
printf(" _ ");
break;
case 2:
printf(" | |");
break;
case 3:
printf(" _ | |");
break;
case 4:
printf("| |_| |");
break;
case 5:
printf(" \___/ ");
break;
}
break;
case 'K':
switch (row) {
case 1:
printf(" _ __");
break;
case 2:
printf("| |/ /");
break;
case 3:
printf("| ' / ");
break;
case 4:
printf("| | \ ");
break;
case 5:
printf("|_|\_\");
break;
}
break;
case 'M':
switch (row) {
case 1:
printf(" __ __ ");
break;
case 2:
printf("| \/ |");
break;
case 3:
printf("| |\/| |");
break;
case 4:
printf("| | | |");
break;
case 5:
printf("|_| |_|");
break;
}
break;
case 'L':
switch (row) {
case 1:
printf(" _ ");
break;
case 2:
case 3:
printf("| | ");
break;
case 4:
printf("| |___ ");
break;
case 5:
printf("|_____|");
break;
}
break;
case 'N':
switch (row) {
case 1:
printf(" _ _ ");
break;
case 2:
printf("| \ | |");
break;
case 3:
printf("| \| |");
break;
case 4:
printf("| |\ |");
break;
case 5:
printf("|_| \_|");
break;
}
break;
case 'O':
switch (row) {
case 1:
printf(" ___ ");
break;
case 2:
printf(" / _ \ ");
break;
case 3:
printf("| | | |");
break;
case 4:
printf("| |_| |");
break;
case 5:
printf(" \___/ ");
break;
}
break;
case 'P':
switch (row) {
case 1:
printf(" ____ ");
break;
case 2:
printf("| _ \ ");
break;
case 3:
printf("| |_) |");
break;
case 4:
printf("| __/ ");
break;
case 5:
printf("|_| ");
break;
}
break;
case 'Q':
switch (row) {
case 1:
printf(" ___ ");
break;
case 2:
printf(" / _ \ ");
break;
case 3:
printf("| | | |");
break;
case 4:
printf("| |_| |");
break;
case 5:
printf(" \__\_\");
break;
}
break;
case 'R':
switch (row) {
case 1:
printf(" ____ ");
break;
case 2:
printf("| _ \ ");
break;
case 3:
printf("| |_) |");
break;
case 4:
printf("| _ < ");
break;
case 5:
printf("|_| \_\");
break;
}
break;
case 'S':
switch (row) {
case 1:
printf(" ____ ");
break;
case 2:
printf("/ ___| ");
break;
case 3:
printf("\___ \ ");
break;
case 4:
printf(" ___) |");
break;
case 5:
printf("|____/ ");
break;
}
break;
case 'T':
switch (row) {
case 1:
printf(" _____ ");
break;
case 2:
printf("|_ _|");
break;
case 3:
case 4:
printf(" | | ");
break;
case 5:
printf(" |_| ");
break;
}
break;
case 'U':
switch (row) {
case 1:
printf(" _ _ ");
break;
case 2:
case 3:
printf("| | | |");
break;
case 4:
printf("| |_| |");
break;
case 5:
printf(" \___/ ");
break;
}
break;
case 'V':
switch (row) {
case 1:
printf("__ __");
break;
case 2:
printf("\ \ / /");
break;
case 3:
printf(" \ \ / / ");
break;
case 4:
printf(" \ V / ");
break;
case 5:
printf(" \_/ ");
break;
}
break;
case 'W':
switch (row) {
case 1:
printf("__ __");
break;
case 2:
printf("\ \ / /");
break;
case 3:
printf(" \ \ /\ / / ");
break;
case 4:
printf(" \ V V / ");
break;
case 5:
printf(" \_/\_/ ");
break;
}
break;
case 'X':
switch (row) {
case 1:
printf("__ __");
break;
case 2:
printf("\ \/ /");
break;
case 3:
printf(" \ / ");
break;
case 4:
printf(" / \ ");
break;
case 5:
printf("/_/\_\");
break;
}
break;
case 'Y':
switch (row) {
case 1:
printf("__ __");
break;
case 2:
printf("\ \ / /");
break;
case 3:
printf(" \ V / ");
break;
case 4:
printf(" | | ");
break;
case 5:
printf(" |_| ");
}
break;
case 'Z':
switch (row) {
case 1:
printf(" _____");
break;
case 2:
printf("|__ /");
break;
case 3:
printf(" / / ");
break;
case 4:
printf(" / /_ ");
break;
case 5:
printf("/____|");
break;
}
break;
default:
break;
}
printf(" ");
}
printf("
");
}
//only upper case supported
void print_str(char* str) {
int i;
for (i = 0; i < strlen(str); i++) {
if (*(str + i) > 'Z' || *(str + i) < 'A') {
fprintf(stderr, "only upper case string supported
");
return ;
}
}
for (i = 1; i <= 5; i++) {
print_row(str, i);
}
}