求大佬解题
输入任一单词,用5×5的'*'号矩阵打印。例如,输入”hello”,打印
* * ***** * * ***
* * * * * * *
***** **** * * * *
* * * * * * *
* * ***** ***** ***** ***
这个程序添加什么代码,可以使输入的长字母拐弯,使得下一行和前面一行不重叠
#include"stdio.h"
#include"stdlib.h"
#include"string.h"
int main()
{
int i,j;
int length=0;//记录字符串长度
int pass[300];//记录输入数据的字母序号,单词最长不超过300个字母
char input[300];//记录输入数据
char output[5][150];//记录输出数据
char *word[26];//记录26个字母的星号矩阵
///////////////////////////字母的星号矩阵定义如下////////////////////////////
word[0]=" * \n * * \n* * \n* * * * * \n* * ";//a
word[1]="* * * * \n* * \n* * * * \n* * \n* * * * ";//b
word[2]=" * * * * \n* \n* \n* \n * * * * ";//c
word[3]="* * * * \n* * \n* * \n* * \n* * * * ";//d
word[4]="* * * * * \n* \n* * * * * \n* \n* * * * * ";//e
word[5]="* * * * * \n* \n* * * * * \n* \n* ";//f
word[6]=" * * * * \n* \n* * * \n* * \n * * * * ";//g
word[7]="* * \n* * \n* * * * * \n* * \n* * ";//h
word[8]=" * \n * \n * \n * \n * ";//i
word[9]=" * \n * \n * \n * * \n * * * ";//j
word[10]="* * * \n* * \n* * \n* * \n* * * ";//k
word[11]="* \n* \n* \n* * \n* * * * * ";//l
word[12]=" * * \n* * * \n* * * \n* * * \n* * * ";//m
word[13]="* * \n* * * \n* * * \n* * * \n* * ";//n
word[14]=" * * * \n* * \n* * \n* * \n * * * ";//o
word[15]="* * * * \n* * \n* * \n* * * * \n* ";//p
word[16]=" * * * \n* * \n* * * \n* * * \n * * * * ";//q
word[17]="* * * * \n* * \n* * \n* * * * \n* * ";//r
word[18]="* * * * * \n* \n* * * * * \n * \n* * * * * ";//s
word[19]="* * * * * \n * \n * \n * \n * ";//t
word[20]="* * \n* * \n* * \n* * \n* * * * * ";//u
word[21]="* * \n* * \n* * \n * * \n * ";//v
word[22]="* * * \n* * * \n* * * \n* * * \n * * ";//w
word[23]="* * \n * * \n * \n * * \n* * ";//x
word[24]="* * \n * * \n * \n * \n * ";//y
word[25]="* * * * * \n * \n * \n * \n* * * * * ";//z
while(1)
{
printf("在此输入单词: ");
scanf("%s",&input);
length=strlen(input);//读取字符串长度
for(i=0;i<length;i++)
{
switch(input[i])//可以同时输入大写或者小写
{
case 'a':
case 'A':
{
pass[i]=0;
break;
}
case 'b':
case 'B':
{
pass[i]=1;
break;
}
case 'c':
case 'C':
{
pass[i]=2;
break;
}
case 'd':
case 'D':
{
pass[i]=3;
break;
}
case 'e':
case 'E':
{
pass[i]=4;
break;
}
case 'f':
case 'F':
{
pass[i]=5;
break;
}
case 'g':
case 'G':
{
pass[i]=6;
break;
}
case 'h':
case 'H':
{
pass[i]=7;
break;
}
case 'i':
case 'I':
{
pass[i]=8;
break;
}
case 'j':
case 'J':
{
pass[i]=9;
break;
}
case 'k':
case 'K':
{
pass[i]=10;
break;
}
case 'l':
case 'L':
{
pass[i]=11;
break;
}
case 'm':
case 'M':
{
pass[i]=12;
break;
}
case 'n':
case 'N':
{
pass[i]=13;
break;
}
case 'o':
case 'O':
{
pass[i]=14;
break;
}
case 'p':
case 'P':
{
pass[i]=15;
break;
}
case 'q':
case 'Q':
{
pass[i]=16;
break;
}
case 'r':
case 'R':
{
pass[i]=17;
break;
}
case 's':
case 'S':
{
pass[i]=18;
break;
}
case 't':
case 'T':
{
pass[i]=19;
break;
}
case 'u':
case 'U':
{
pass[i]=20;
break;
}
case 'v':
case 'V':
{
pass[i]=21;
break;
}
case 'w':
case 'W':
{
pass[i]=22;
break;
}
case 'x':
case 'X':
{
pass[i]=23;
break;
}
case 'y':
case 'Y':
{
pass[i]=24;
break;
}
case 'z':
case 'Z':
{
pass[i]=25;
break;
}
}
}
for(i=0;i<length;i++)
{
for(j=0;j<11;j++)
{
output[0][i*11+j]=word[pass[i]][j];
output[1][i*11+j]=word[pass[i]][12+j];
output[2][i*11+j]=word[pass[i]][24+j];
output[3][i*11+j]=word[pass[i]][36+j];
output[4][i*11+j]=word[pass[i]][48+j];
}
}
for(i=0;i<5;i++)
{
for(j=0;j<length*11;j++)
{
printf("%c",output[i][j]);
}
printf("\n");
}
printf("\n\n");
system("pause");
system("cls");
}
}