SoloCodigo
		Programación General => C/C++ => Mensaje iniciado por: andresucko en Miércoles 14 de Octubre de 2015, 05:01
		
			
			- 
				Buenas noches amigos, tengo un problema con este programa, en donde tengo que hacer que el usuario ingrese un nombre y me muestre cuantas vocales, consonantes y espacios tiene, el problema aqui es que me lee mucha basura y cuando cambio lo que esta dentro del for me marca o me lee mejor dicho solo un caracter(ya sea espacio, consonante o vocal) me gustaria saber si podrian ayudarme con este programa, aqui les dejo mi codigo.
 
 #include <iostream>
 #include <cstdio>
 #include <cstdlib>
 #include <conio.h>
 #include <windows.h>
 #include <iomanip>
 
 
 using namespace std;
 
 int main (){
 char nom[30];
 int vocal=0, cons=0, esp=0;
 int i=0;
 
 cout<<"Ingresa tu nmbre: "<<endl;
 cin.getline(nom,30);
 for (i=0;i!='\30';i++){
 if (((nom[i]>='A')&&(nom[i]<='Z'))||((nom[i]>='a')&&(nom[i]<='z')))
 {
 if((nom[i]=='a')||(nom[i]=='e')||(nom[i]=='i')||(nom[i]=='o')||(nom[i]=='u')
 ||(nom[i]=='A')||(nom[i]=='E')||(nom[i]=='I')||(nom[i]=='O')||(nom[i]=='U'))
 {
 vocal=vocal+1;
 }
 else
 {
 cons=cons+1;
 }
 }
 else
 {
 esp=esp+1;
 }
 }
 cout<<"El nombre tiene: "<<vocal<<" Vocales, "<<cons<<" Consonantes y "<<esp<<" Espacios"<<endl;
 
 system("pause");
 return 0;
 }
- 
				Hola, creo que el problema lo tienes en el for, colocas que hasta no sea igual a 30?
 yo pondría mientra sea menor que la longitud de la variable, que es con la función sizeof.