题目如下:
输入十个字符串,长度在20--50之间。检查每个字串,若遇到字母A,就在其后插入一个空格,最后打印全部处理后的字串,并统计26个安母各出现多少次。
以下是我编写的代码,编译通过,但是得不出正确结果。谁给点建议
#include <stdio.h>
typedef char* string;
void Arrange(string *str,string *arr)
{
int i,j;
int pos;
for(i=0;i<10;i++)
{
j=0;pos=0;
while(str[i][j])
{
if(str[i][j]=='A')
arr[i][pos++]=' ';
arr[i][pos++]=str[i][j];
j++;
}
}
}
void count(string *str,int *cnt)
{
char ch;
int i,j;
int dif;
for(i=0;i<10;i++)
{
j=0;
while(str[i][j])
{
dif=-1;
if((str[i][j]<='Z'&&str[i][j]>='A'))
{
dif=str[i][j]-'A';
}
else
if((str[i][j]>='a'&&str[i][j]<='z'))
{
dif=str[i][j]-'a';
}
if(dif!=-1)
cnt[dif]++;
j++;
}
}
}
void print(string *arr)
{
int i;
for(i=0;i<10;i++)
{
printf("%s\n",arr[i]);
}
}
void main()
{
string str[10];
int cnt[26];
char arrange[10][80];
int i;
char ch;
for(i=0;i<26;i++)
{
cnt[i]=0;
}
for(i=0;i<2;i++)
{
scanf("%s",str[i]);
}
Arrange(str,arrange);
count(str,cnt);
print(arrange);
printf("\n");
ch='A';
for(i=0;i<10;i++)
{
printf("%s\n",str[i]);
}
for(i=0;i<26;i++)
{
printf("%c ",ch++);
}
printf("\n");
for(i=0;i<26;i++)
{
printf("%d ",cnt[i]);
}
getch();
}