简单的字符操作
第一行输入一个整数N表示输入多少行字符,第二行输入‘A’~'Z'中任意字符,判断相同字符的个数并输出,字符个数为1时省略1。例:输入:
2
ABC
ABBCCC
输出:
ABC
A2B3C
下面是我的代码,各位替我看看错哪了,谢谢
#include<stdio.h>
void main()
{
int n,i,num[100];
char ch[100];
for(i=0;i<=90;i++)
{
num[i]=0;
}
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%c",&ch[i]);
}
for(i=0;i<n;i++)
{
switch(ch[i])
{
case 'A': num[65]++;break;
case 'B': num[66]++;break;
case 'C': num[67]++;break;
case 'D': num[68]++;break;
case 'E': num[69]++;break;
case 'F': num[70]++;break;
case 'G': num[71]++;break;
case 'H': num[72]++;break;
case 'I': num[73]++;break;
case 'J': num[74]++;break;
case 'K': num[75]++;break;
case 'L': num[76]++;break;
case 'M': num[77]++;break;
case 'N': num[78]++;break;
case 'O': num[79]++;break;
case 'P': num[80]++;break;
case 'Q': num[81]++;break;
case 'R': num[82]++;break;
case 'S': num[83]++;break;
case 'T': num[84]++;break;
case 'U': num[85]++;break;
case 'V': num[86]++;break;
case 'W': num[87]++;break;
case 'X': num[88]++;break;
case 'Y': num[89]++;break;
case 'Z': num[90]++;break;
default:printf("input error");
}
}
for(i=0;i<n;i++)
{
int ati;
ati=atoi(ch[i]);
if(num[ati]==1)
{
printf("%c",ch[i]);
}
else if(num[ati]>1)
{
printf("%d%c",num[ati],ch[i]);
}
}
}