Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Encontrar la posicion de un caracter en una cadena

Estas en el tema de Encontrar la posicion de un caracter en una cadena en el foro de C/C++ en Foros del Web. Hola a todos: Quisiera obtener la posicion de un caracter en una cadena. he intentado algo a esto pero no me funciona. posicion = strstr(cadena1, ...
  #1 (permalink)  
Antiguo 21/05/2011, 10:04
Avatar de ManelGomez  
Fecha de Ingreso: diciembre-2007
Ubicación: El Prat de llobregat
Mensajes: 180
Antigüedad: 16 años, 5 meses
Puntos: 2
Encontrar la posicion de un caracter en una cadena

Hola a todos:

Quisiera obtener la posicion de un caracter en una cadena. he intentado algo a esto pero no me funciona.


posicion = strstr(cadena1, caracter);

Un Saludo
  #2 (permalink)  
Antiguo 21/05/2011, 10:30
_Lx
 
Fecha de Ingreso: mayo-2011
Mensajes: 17
Antigüedad: 13 años
Puntos: 11
Exclamación Respuesta: Encontrar la posicion de un caracter en una cadena

Mmm ...

¿Por qué no creas tú mismo la función?

Código C:
Ver original
  1. #include <stdio.h>
  2. #include <string.h>
  3.  
  4. int posc( char cad[], char c);
  5.  
  6. int main()
  7. {
  8.    char s[30] = "Encontrar caracter en cadena";
  9.    char c = 'a';
  10.    int pos = posc( s, c);
  11.    
  12.    printf("\nCadena: \"%s\"\n", s);
  13.    printf("Caracter a buscar: '%c'\n", c);
  14.    if( pos == -1)
  15.       printf("\nCaracter no encontrado . . .\n");
  16.    else
  17.       printf("\nPosici%cn del caracter: %d\n", 162, pos);
  18.    
  19.    printf("\nPresione ENTER para salir . . .");
  20.    getchar();
  21.    return 0;
  22. }
  23.  
  24. int posc( char cad[], char c)
  25. {
  26.    int pos = -1;
  27.    int len = strlen( cad);
  28.    
  29.    for( int i = 0; pos == -1 && i < len; i++){ // si quitas la condición pos == -1
  30.             // te devuelve la última posición encontrada (si es que hay más de 1)
  31.       if(*(cad+i) == c)
  32.          pos = i+1;
  33.    }
  34.    return pos;
  35. }

Última edición por _Lx; 21/05/2011 a las 10:35

Etiquetas: funcion
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:09.