Ver Mensaje Individual
  #8 (permalink)  
Antiguo 13/04/2010, 11:57
roser24
 
Fecha de Ingreso: marzo-2010
Mensajes: 127
Antigüedad: 14 años, 1 mes
Puntos: 2
De acuerdo Respuesta: Cadena de caracteres aleatorios

MIl GRACIAS chicos Manuel y Fenri,corregi mi codigo y se ejecuta hermosamente ,pongo el codigo final por si algun estudiante de C como yo tiene algun problema parecido =),

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.  
  38.  for(i=0;i<l;i++){
  39.  if(tolower(cad[i])== letra){
  40.  
  41.  if(flag==0){         //Si es la primera vez que coinciden flag valdra 0;
  42.  
  43.  
  44.   flag=1;
  45.     pos=i;
  46.  
  47.     }
  48.     else{//las proximas veces guardara la posicion en posf
  49.     posf=i;
  50.  
  51.     }
  52.  
  53.  
  54.   }
  55.   }
  56.  if(flag==1){
  57.  printf("la letra %c se encontro en la cadena \n",letra);
  58.  printf("la primera ocurrencia fue en la posicion  %i\n",pos);
  59.  printf("la ultima ocurrencia fue en la posicion %i\n",posf);
  60.  }
  61.  else{
  62.  printf("La letra %c No se encontro en la cadena\n",letra);
  63.  }
  64.  return 0;
  65.  }