Ver Mensaje Individual
  #1 (permalink)  
Antiguo 27/10/2010, 18:46
Avatar de soy_nicanor
soy_nicanor
 
Fecha de Ingreso: mayo-2010
Mensajes: 374
Antigüedad: 14 años
Puntos: 3
Ayuda urgente con cadena de caracteres

Hola bueno este codigo ase que si ingreso:
MERCEDES APAZA PERES
me cuenta las letras y espacios en este caso seria 18 letras y 3 espacios.

funciona bien el programa pero sucedio algo curioso en el colegio.
este trabajo presente al docente y me dijo que este cosigo no funciona,
mi preguntas es por que no funcionaria si funciona bien

for(i=0;dato[i]!=t;i++)

o

for(i=0;dato[i]!='\0';i++)

Osea el bucle termina en el salto de linea

por favor diganme por que estari mal.

Código C++:
Ver original
  1. #include <string.h>
  2. #include <conio.h>
  3. #include <iostream>
  4. using namespace std;
  5.  
  6. main()
  7. {
  8.     char dato[80],s;
  9.     int i,suma=0,t='\0';
  10.     int espacio= 0;
  11.     cout<<"Escriba una cadena: ";
  12.     cin.getline(dato,80) ;
  13.     for(i=0;dato[i]!=t;i++)//Aqui es la discucion  ¿por que no funcionaria..?
  14.     {
  15.         if(dato[0]==' ')
  16.         {
  17.             t=dato[i];
  18.             s=2;
  19.         }
  20.         else if((dato[i]==' ') && (dato[i+1]==' '))
  21.         {
  22.             t=dato[i];
  23.             s=2;
  24.         }
  25.         else if(dato[i]==' ')
  26.         {
  27.             espacio=espacio+1;
  28.         }
  29.         else
  30.         {
  31.             suma=suma+1;
  32.         }
  33.  
  34.        
  35.     }
  36.     if(s==2)
  37.     {
  38.         cout<<"Datos no permitidos!"<<endl;
  39.     }
  40.     else
  41.     {
  42.         cout<<dato<<"  Tiene: "<<suma<<" Letras y "<<espacio<<" Espacios"<<endl;
  43.     }
  44.        
  45.  
  46.  return 0;
  47. }