"asd39n" 345 34.455 A345
cadena entero flotante identificador
pero no se algo esta mal que no me da lo qu e yo quiero a ver denlñe una ojeada mi code gracias
Código
//------------------------------------------------------// //------------------------------------------------------// #include <iostream> #include <stdio.h> #include <string.h> #include <stdlib.h> #include <ctype.h> #include <iomanip.h> using std::cout; using std::endl; #include <cstring> int ident=0; //------------------------------------------------------// //------------------------------------------------------// void cadena_caracteres(char *sub_cadena ); void numero_entero(char *sub_cadena); void numero_flotante(char *sub_cadena); void identificador (char *sub_cadena); //------------------------------------------------------// //------------------------------------------------------// int main() { char frase[100]; char *sub_cadena=NULL; cout<<"ingrese la frase a evaluar "; gets(frase); sub_cadena = strtok(frase," "); while(sub_cadena!= NULL) { cout << sub_cadena << " ------> "; //------------------------------------------------------// if(sub_cadena[0]=='"') { cadena_caracteres(sub_cadena); } //------------------------------------------------------// for(int j=0;j<strlen(sub_cadena);j++) { if(sub_cadena[j]=='.') { numero_flotante(sub_cadena); ident=j; break; } } //------------------------------------------------------// if( isdigit(sub_cadena[0])!=0 && isdigit(sub_cadena[ident])!=0) { numero_entero(sub_cadena); } //------------------------------------------------------// if( isdigit(sub_cadena[0])!=0) { identificador(sub_cadena); } //------------------------------------------------------// sub_cadena = strtok(NULL, " "); } system("pause"); } //------------------------------------------------------// //------------------------------------------------------// void cadena_caracteres(char *sub_cadena) { int n=strlen(sub_cadena); if(sub_cadena[n-1]=='"') { cout<<endl; cout<<setw (25)<<"ES UNA CADENA DE CARACTERES"<<endl; } // else { cout<<endl;cout<<setw (25)<<"PARECIA UNA CADENA DE CARACTERES PERO NO LO ES "<<endl; } } //------------------------------------------------------// //------------------------------------------------------// void numero_entero(char *sub_cadena) { int x=0; for(int i=0;i<strlen(sub_cadena);i++) { if(isdigit(sub_cadena[i])) { x++; } } if(x==strlen(sub_cadena)) { cout<<endl;cout<<setw (25)<<"ES UN NUMERO ENTERO "<<endl; } //else {cout<<endl;cout<<setw (25)<<"ESTO NO ES UN NUMERO ENTERO "<<endl;} } //------------------------------------------------------// //------------------------------------------------------// void numero_flotante(char *sub_cadena) { int x=0,y=0; for(int i=0;i<strlen(sub_cadena);i++) { if(isdigit(sub_cadena[i])) { x++; } if(sub_cadena[i]=='.') { y++; } } if(x==strlen(sub_cadena)-1 && y==1) { cout<<endl;cout<<setw (25)<<"ES UN NUMERO FLOTANTE "<<endl; } // else {cout<<endl;cout<<setw (25)<<"ESTO NO ES UN NUMERO FLOTANTE "<<endl;} } //------------------------------------------------------// //------------------------------------------------------// void identificador (char *sub_cadena) { int x=0,y=0; for(int i=0;i<strlen(sub_cadena);i++) { if(isdigit(sub_cadena[i])!=0) { x++; } if(isdigit(sub_cadena[i])==0) { x++; } } if(isdigit(sub_cadena[0])==0 && x+y==strlen(sub_cadena)) {cout<<endl;cout<<setw (25)<<"ESTO ES UN IDENTIFICADOR "<<endl;} }