visto che si tratta di una stringa devi controllare
un carattere alla volta
se è una lettera o un numero se sono tutti numeri allora trattasi di numero
io ho provato per esercizio a fare una funzione che
riconoscesse se si tratta di numero o di stringa
comunque ha delle limitazioni considera solo numeri interi senza virgola
non usa come ti è stato chiesto malloc e allocazione dinamica
è solo un esempio ma fa un po di piu del codice che hai postato tu
codice:
#include <stdio.h>
#include <stdlib.h>
int controllo(char *c);
int main(int argc, char *argv[])
{
int i= controllo("213478");
if (i==1)
puts("è un numero");
else
puts ("e una stringa");
system("PAUSE");
return 0;
}
int controllo(char *c)
{
int i,j=strlen(c);
int numeri_presenti=0;
for(i=0;i<j;i++)
{
if(c[i]>=48 && c[i]<=57) // se il carattere è compreso tra 1 e 9 ascii
numeri_presenti++;
}
if(numeri_presenti==j){//se uguale numero caratteri
return 1; // la stringa è un numero
}
else
return 0; // la stringa contiene altri caratteri
}