Soy Nuevo con C!

LoSk

Hola una pequeña duda, uso C , cn dev c++ ... necesito hacer un programa que me diga cuantas vocales accentudas hay.. pero al meter -> car == ' á ' , no me lo coje el programa es mas no me deja ni compilarlo... nose si esque me coje el ' Ž ' en otro pulso distinto al de la A .. ¿ Alguien sabe que puedo hacer?? solo puedo usar bucles de repeticion.. y estructuras sencillas.

Puni

igual te es mas facil compararlos como enteros, a fin de cuentas los chars son enteros sin signo y contienen el codigo del caracter q le asignes

IAF

Te da error en la linea del if ?
Tal vez seria mejor q pusieras todo el código aquí q no creo q sea muy extenso

LoSk

while (car != '*' ) {


          if ( car == 'á' || car == 'é' || car == 'í' || car == 'ó' || car == 'ú'  ){
               
               vocal_ac = vocal_ac + 1;
               
          }

Se supone que el while me dice que cuando inserte el char '*' me pare el programa, lo demás es
lo que hago para que me vaya sumando las vocales con asteriscos... y al compilar (ahora si me compila) no me suma las vocales.

r2d2rigo

Vas a tener que meterle la comparacion con el codigo ASCII... algunos compiladores son asi de desgraciados.

http://enteos2.area.trieste.it/russo/IntroInfo2001-2002/CorsoRetiGomezel/ASCII-EBIC_files/extend_ascii_table.jpg

Fr4nk0

Otra forma es comparar cadenas con strcmp (aunque sea una cadena d un caracter).
Si el resultado de strcmp(caracter, "à") es igual a 0 es que son iguales.

De todas formas es mas eficiente que uses como te han dicho antes, el código ASCII de los caracteres y compares enteros.

YiTaN

ké fallo de compilación te da? prueba a poner todas las condiciones entre paréntesis, que además es una buena práctica para mejorar la legibilidad ;)

bLaKnI

ASCII! :)

LoSk

Y como le meto al código ascci ...?? por ejemplo la á es es el 160 en la tabla ASCII .. pero tengo que abrir alguna libreria o algo :S ?? nunca use ascii

Angel89

no, el ascii es usar numeros directamente, si la 'á' es el 160, pues pones "car!=160" y au xD.
pero tienes q nombrar a "car" como char, no como int.

JuAn4k4

(int)car != (int)'á'

Mira a ver asi, y sino, cambia el (int)'á' por 160.

Del 160 al 163 y el 130 son las tildes normales.

if (
((int) car <= 163) &&
((int)car >= 160) ||
((int)car == 130)
)

Usuarios habituales

  • JuAn4k4
  • Angel89
  • LoSk
  • bLaKnI
  • YiTaN
  • Fr4nk0
  • r2d2rigo