
Problemas con función strchr
Publicado por Luis (4 intervenciones) el 06/11/2016 08:21:04
Verán, estoy haciendo un programa bastante sencillo, que bien lo podría hacer con un if de otra forma, pero necesito aprender a utilizar la función strchr.
En este programa trato de verificar las vocales en una cadena, lo hago de la siguiente forma:
if (strchr("aeiouAEIOU", cadena[i]))
{
contadorVocales++;
}
El problema es con el contador, y creo que resulta debido a la función, porque cuando hago un if(cadena[i] == 'a' || cadena[i]=='e' ... || cadena[i]=='U') mi contador funciona claramente.
Si ingreso "aeiou" como cadena me dice que contadorVocales es 5, pero al usar la función strchr, me dice que contadorVocales es igual a contadorVocales+1, es decir, si ingreso "aeiou" me dice que contadorVocales es 6. Bien podría imprimir:
std::cout<<contadorVocales-1;
pero no quiero hacer eso, prefiero comprender el porqué está haciendo esto
En este programa trato de verificar las vocales en una cadena, lo hago de la siguiente forma:
if (strchr("aeiouAEIOU", cadena[i]))
{
contadorVocales++;
}
El problema es con el contador, y creo que resulta debido a la función, porque cuando hago un if(cadena[i] == 'a' || cadena[i]=='e' ... || cadena[i]=='U') mi contador funciona claramente.
Si ingreso "aeiou" como cadena me dice que contadorVocales es 5, pero al usar la función strchr, me dice que contadorVocales es igual a contadorVocales+1, es decir, si ingreso "aeiou" me dice que contadorVocales es 6. Bien podría imprimir:
std::cout<<contadorVocales-1;
pero no quiero hacer eso, prefiero comprender el porqué está haciendo esto
Valora esta pregunta


0