Título: Posición en el abecedario [Batch]
Publicado por: leogtz en 12 Abril 2009, 01:54 am
Pedir una cadena al usuario, y de cada caracter de la cadena indicar que posición ocupa en el abecedario : Cadena : Leonardo L = 12 e = 5 o = 15 n = 14 a = 1 r = 18 d = 4 o = 15 Press any key... :code set /p "cadena=Cadena : " set "abecedario=abcdefghijklmnopqrtsuvwxyz" :bucle :next for /l %%$ in (0,1, %longitud%) do ( call : etiqueta !cadena2:~% style="color: #448888;">%$,1! ) :etiqueta if /i [" !abecedario:~% style="color: #448888;">%_,1!"]==["% style="color: #448888;">caracter%"] (call:view !caracter! !contador!) ) :view
Título: Re: Posición en el abecedario [Batch]
Publicado por: DarkItachi en 11 Mayo 2009, 14:38 pm
El mismo ejercicio en C++: #include <iostream> using namespace std; char abecedario[25]; int pos_abc(char letra,char abc[]=abecedario); int main() { char cadena[50]; int i=0; for (char b='a';b<='z';b++) { abecedario[i]=b; i++; } cout<<"Introduzca palabra: "; cin>>cadena; cout<<endl; for (int f=0;f<strlen(cadena);f++) { cout<<cadena[f]<<" = "<<pos_abc(cadena[f])<<endl; } cout<<endl; system("pause"); } int pos_abc(char letra,char abc[]) { for (int i=0;i<strlen(abc);i++) //recorre la cadena { if (letra==abc[i]) { return i+1; } //Devuelve posicion } return -1; //Si llega a esta parte, es decir, la letra no esta //en el abecedario devolvera -1 }
La función también acepta abecedarios personalizados.
Título: Re: Posición en el abecedario [Batch]
Publicado por: leogtz en 7 Junio 2009, 19:47 pm
Aqui pongo la solución en C: #include <stdio.h> signed int busqueda(char caracter); int main(void) { char cadena[200]; scanf("%199[^\n]", cadena ); for(signed int i = 0; cadena[i] != '\0'; i++) printf("%c = %d\n", cadena [i ], busqueda (cadena [i ])); return 0; } signed int busqueda(char caracter) { char abecedario[] = "abcdefghijklmnopqrstuvwxyz"; for(signed int i = 0; abecedario[i] != '\0'; i++) if(caracter == abecedario[i]) return i+1; }
Salida: C:\>dudas Cadena : Guitarra G = 16 u = 21 i = 9 t = 20 a = 1 r = 18 r = 18 a = 1
C:\>
Título: Re: Posición en el abecedario [Batch]
Publicado por: Eliptico en 9 Junio 2009, 04:55 am
¡¡¡Buenas!!! Aqui va uno que tambien reconoce mayusculas. #include <stdio.h> #include <stdlib.h> #define MAX_CAD 50 int main (int argc,char* argv[]) { char cad[MAX_CAD],i; printf("Introduce una cadena: "); fgets(cad ,MAX_CAD ,stdin ); for(i=0; cad[i]!='\n' ; i++) { if(cad[i]>='a' && cad[i]<='z') printf("%c = %d\n", cad [i ], cad [i ] - 'a' + 1); else if(cad[i]>='A' && cad[i]<='Z') printf("%c = %d\n", cad [i ], cad [i ] - 'A' + 1); else if(cad[i]==' ') else printf("caracter no reconocido.\n"); } return 0; }
¡¡¡Un saludo!!!
Título: Re: Posición en el abecedario [Batch]
Publicado por: leogtz en 9 Junio 2009, 07:44 am
Este también reconoce mayusculas : #include <stdio.h> #include <ctype.h> signed int busqueda(char caracter); int main(void) { char cadena[200]; scanf("%199[^\n]", cadena ); for(signed int i = 0; cadena[i] != '\0'; i++) printf("%c = %d\n", cadena [i ], busqueda (cadena [i ])); return 0; } signed int busqueda(char caracter) { char abecedario[] = "abcdefghijklmnopqrstuvwxyz"; for(signed int i = 0; abecedario[i] != '\0'; i++) if(tolower(caracter ) == abecedario [i ]) return i+1; }
Salida: C:\>codes Cadena : LaGuitarra L = 12 a = 1 G = 7 u = 21 i = 9 t = 20 a = 1 r = 18 r = 18 a = 1
C:\> Saludos.
Título: Re: Posición en el abecedario [Batch]
Publicado por: Eliptico en 9 Junio 2009, 18:39 pm
Pues si, y queda mas claro.
¡¡¡Un saludo!!!
|