Buen dia!
Tengo una duda
quiero crear un "programa" que me elimine las vocales de una palabra, solo d una palabra, no quiero que me las reemplace por espacios, solo q las elimine, por ejemplo:
inserir palabra: murcielago
mrclg
De antemano gracias.
:)
void invertir (char p [256])
{
int i;
int largo=strlen(p)-1;
cout<<("al reves:\n");
for(i=0; i<=largo; i++)
{
if (p[i]=='a' || p[i]=='e' || p[i]=='i' ||p[i]=='o'||p[i]=='u')
{
No se como mas seguir! el otro for
Mod: Los códigos deben ir en etiquetas GeSHi
que tienes hecho?
modifica el titulo, el mismo debe ser descriptivo "programacion c++" en el foro de "programación c/c++" no es descriptivo
Cita de: engel lex en 28 Octubre 2015, 19:44 PM
que tienes hecho?
modifica el titulo, el mismo debe ser descriptivo "programacion c++" en el foro de "programación c/c++" no es descriptivo
Disculpa, no tengo nada, nos dieron la teoria y nos dijeron que hagamos ese ejercicio, no se por donde empezar.
Uso C++
Gracias
no tienes ni si quiera el main?
el foro es para resolver dudas puntuales, así que por favor puntualiza...
Repito, cambia el titulo... usa el boton "modificar" del primer post para modificar el titulo del tema
Cita de: engel lex en 28 Octubre 2015, 19:48 PM
no tienes ni si quiera el main?
el foro es para resolver dudas puntuales, así que por favor puntualiza...
Repito, cambia el titulo... usa el boton "modificar" del primer post para modificar el titulo del tema
void invertir (char p [256])
{
int i;
int largo=strlen(p)-1;
cout<<("al reves:\n");
for(i=0; i<=largo; i++)
{
if (p[i]=='a' || p[i]=='e' || p[i]=='i' ||p[i]=='o'||p[i]=='u')
{
me falta el otro for, no se si sea correcto
Mod: Los códigos deben ir en etiquetas GeSHi
tienes que crear otro char donde lo vas llenando con las letras que no sean vocales tienes todo practicamente bien...
viste que si tenías algo... que es muy diferente a nada...
Cita de: engel lex en 28 Octubre 2015, 20:02 PM
tienes que crear otro char donde lo vas llenando con las letras que no sean vocales tienes todo practicamente bien...
viste que si tenías algo... que es muy diferente a nada...
void invertir (char p [256])
{
int i;
int largo=strlen(p)-1;
cout<<("al reves:\n");
for(i=0; i<=largo; i++)
{
if (p[i]=='a' || p[i]=='e' || p[i]=='i' ||p[i]=='o'||p[i]=='u')
{
p[i]=' ';
}
}
for(i = largo; i >= 0; --i)
{
cout<<("%c",p[i]);
}
}
Me da un error al final, no me ejecuta.
ayuda please!
Mod: Los códigos deben ir en etiquetas GeSHi
que error? en que linea? copia y pega del compilador, es importante leer los errores
Cita de: engel lex en 28 Octubre 2015, 20:15 PM
que error? en que linea? copia y pega del compilador, es importante leer los errores
void invertir (char p [256])
{
int i;
int largo=strlen(p)-1;
cout<<("al reves:\n");
for(i=0; i<=largo; i++)
{
if (p[i]=='a' || p[i]=='e' || p[i]=='i' ||p[i]=='o'||p[i]=='u')
{
p[i]=' ';
}
}
for(i = largo; i >= 0; --i)
{
cout<<("%c",p[i]);
}
}
El error me lo da en la ultima impresion.
te explico... es importante que indiques el error, ¿por qué? porque el error explica el error que hubo
#include <iostream>
#include <algorithm>
#include <string>
bool IsParenthesesOrDash(char c)
{
switch(c)
{
case 'a':
case 'e':
case 'i':
case 'o':
case 'u':
return true;
default:
return false;
}
}
int main()
{
std::string str("murcielago");
str.erase(std::remove_if(str.begin(), str.end(), &IsParenthesesOrDash), str.end());
std::cout << str << std::endl;
}
https://stackoverflow.com/questions/5891610/how-to-remove-characters-from-a-string
Cita de: engel lex en 28 Octubre 2015, 20:35 PM
te explico... es importante que indiques el error, ¿por qué? porque el error explica el error que hubo
void invertir (char p [256])
{
int i;
int largo=strlen(p)-1;
cout<<("al reves:\n");
for(i=0; i<=largo; i++)
{
if (p[i]=='a' || p[i]=='e' || p[i]=='i' ||p[i]=='o'||p[i]=='u')
{
p[i]=' ';
}
}
for(i = largo; i >= 0; --i)
{
cout<<("%c",p[i]);
}
}
Me dice "left operand of comma operator has no effect."
No se.
estás formando el cout como si fuera un printf
así se usa
cout<<p[i];
Cita de: engel lex en 28 Octubre 2015, 20:35 PM
te explico... es importante que indiques el error, ¿por qué? porque el error explica el error que hubo
void invertir (char p [256])
{
int i;
int largo=strlen(p)-1;
cout<<("al reves:\n");
for(i=0; i<=largo; i++)
{
if (p[i]=='a' || p[i]=='e' || p[i]=='i' ||p[i]=='o'||p[i]=='u')
{
p[i]=' ';
}
}
for(i = largo; i >= 0; --i)
{
cout<<("%c",p[i]);
}
}
me dice lo siguiente en error de
cout<<("%c",p[i]);
"left operand of comma operator has no effect. , que hago?
Cita de: Slava_TZD en 28 Octubre 2015, 20:50 PM
#include <iostream>
#include <algorithm>
#include <string>
bool IsParenthesesOrDash(char c)
{
switch(c)
{
case 'a':
case 'e':
case 'i':
case 'o':
case 'u':
return true;
default:
return false;
}
}
int main()
{
std::string str("murcielago");
str.erase(std::remove_if(str.begin(), str.end(), &IsParenthesesOrDash), str.end());
std::cout << str << std::endl;
}
https://stackoverflow.com/questions/5891610/how-to-remove-characters-from-a-string
Me parece bien, pero yo quiero introducir la palabra, mediante el teclado., no de manera directa en el codigo.
Gracias
Si el problema es restrictivo en cuanto usar nada más arreglos puedes crear 2 uno del mismo tamaño que el primero para pasar sólamente las consonantes es decir
A N D R E S
en el otro arreglo sería
N D R S
esa sería una forma claro usando un sólo arreglo también podrías con 2 ciclos anidados para asignar al mismo las consonantes sólamente,
si fuese de cualquier forma la entrada la recorres e imprimes sólamente las consonantes.