Ver Mensaje Individual
  #5 (permalink)  
Antiguo 12/04/2010, 15:20
roser24
 
Fecha de Ingreso: marzo-2010
Mensajes: 127
Antigüedad: 14 años, 1 mes
Puntos: 2
Respuesta: Cadena de caracteres aleatorios

Hola chicos,siguiendo con el ejercicio hay una parte que nome sale para nada no se como quedarme con la ultima ubicacion de un caracter de la cadena.-.la primera si pero la ultima no me lo guarda..
Código C:
Ver original
  1. /*20.   Generar la longitud de la cadena aleatoriamente y la propia cadena de
  2. caracteres (tanto en mayúsculas como en minúsculas) de 50 caracteres útiles
  3. como máximo y 15 como mínimo. Buscar dentro de ella la primera y última
  4. ocurrencia de un carácter leído por teclado indepen-dientemente de si se almaceno
  5. en mayúsculas o minúsculas, indicando la
  6.  posición donde se encuentra dentro de la cadena o el mensaje correspondiente si
  7.  no se encontró.*/
  8.  
  9.  #include<stdio.h>
  10.  #include<time.h>
  11.  #include<stdlib.h>
  12.  #include<ctype.h>
  13.  #include<string.h>
  14.  
  15.  int main(){
  16.  
  17.  char cad[51],letra;
  18.  int l=0,i=0,aux,flag=0,pos=0,posf=0;
  19.  
  20.  printf("*******LONGITUD CADENA ALEATORIA*******\n");
  21.  srand(time(NULL));
  22.  l=(rand()% 34)+ 15;
  23.  printf("la longitud es %d\n",l);
  24.  printf("La cadena de caracteres aleatorios es:\n");
  25.  for(i=0;i<l;i++){
  26. aux=(rand()%56)+65; //EL 56 sale de( VALOR MAX ES 122(z)-65(A)+1) y el 65 es el minimo ya que ahi empieza el valor de A
  27. if(aux<90 || aux>97){   //me quito con este if los valores que no son letras y que estan entre el 90 y el 97(simbolos raros)..
  28. cad[i]=aux;            //si cumple la condicion lo guardo en mi cadena..
  29. printf("%c,%d\n",cad[i],i);   //visualizo mi cadena
  30.   }
  31.   else{
  32.   i--;
  33.   }
  34.  }
  35.  printf("Introduce un caracter a buscar:\n");
  36.  scanf("%c",&letra);
  37.  letra=tolower(letra);
  38.  for(i=0;i<l;i++){
  39.  if(cad[i]==letra){         //Desde aqui
  40.  
  41.  
  42.   flag=1;
  43.     pos=i;
  44.  
  45.     }
  46.     if(pos<=i){
  47.     posf=i;
  48.  
  49.     }
  50.  
  51.  
  52.   }
  53.                               // hasta aqui no se como guardar la ultima ocurrencia del caracter..
  54.  if(flag==1){
  55.  printf("la letra %c se encontro en la cadena \n",letra);
  56.  printf("la primera ocurrencia es en %i\n",pos);
  57.  printf("la ultima ocurrencia es en %i\n",posf);
  58.  }
  59.  else{
  60.  printf("La letra %c No se encontro en la cadena\n",letra);
  61.  }
  62.  return 0;
  63.  }