Salve, devo compilare un programma relativamente semplice che data una stringa alfabetica mi sputa il numero di lettere che compaiono in ordine:
es.: str: AMACA ---------------> out: 3A1M1C
vi posto il codice da me scritto.. il problema secondo me risiede nella dichiarazione della stringa char* b[MAX] ma non so come uscirne. Grazie.
#include<stdio.h>
#include<ctype.h>
#define MAX 300
int len(char*s)
{
int i=0;
while(s[i]!='\0')
i++;
return i;
}
int finder(char*s,char c)
{
int i,k=0;
for(i=0;i<len(s);i++)
if (s[i]==c)
k++;
return k;
}
int conta(char*a)
{
int i,u=0;
char b[MAX];
b[0]='\0';
for(i=0;i<len(a);i++)
{
a[i]=toupper(a[i]);
}
printf("\n%s\n",a);
for(i=0;i<len(a);i++)
{
if(isalpha(a[i])==1)
{
if(finder(b,a[i])==0)
{
b[u]=finder(a,a[i]);
u++;
b[u]=a[i];
u++;
}
}
}
b[u]='\0';
printf("\n%s\n",b);
return len(a);
}
int main()
{
char a[MAX],c;
int i=0;
puts("Inserisci la stringa str:\n");
while((c=getchar())!='\n')
a[i++]=c;
a[i]=0;
printf("\nLa funzione CONTA ritorna %d\n",conta(a));
return 0;
}