¿Qué me falla?

G

char ch;
ch = 'g';
printf("%cn", ch);
if ('a' <= ch && ch <= 'z')

ch = ch - 'a' + 'A';
printf("%cn", ch);

quiero que convierta de mayúscula a minúscula, pero me falla en algo (si, soy nuevo en esto)

Yandr0s

Que mensaje de error te da??

Podrias poner simplemente ch='A' en vez de ch=ch -'a' + 'A'

1 respuesta
m0rG

#2

Si hace eso siempre imprimirá la A mayúscula, lo que quiere es convertir cualquier letra en el rango [a-z] en su correspondiente letra mayúscula en [A-Z]. En principio no se ve nada excesivamente raro en el código de #1. Aparte del fallo en el printf (imagino que la %cn es en realidad %c\n para imprimir el caracter y un salto de línea) y que no has puesto el main/include el programa funciona bien (la parte de la conversión al menos). Échale un vistazo a este link: http://codepad.org/TywcSl4m . El código sería algo como:

#include <stdio.h>

void main()
{
char ch;
ch = 'g';
printf("%c\n", ch);
if ('a' <= ch && ch <= 'z')
ch = ch - 'a' + 'A';
printf("%c\n", ch);
}
2 respuestas
G

#3 he probado tu programa y el error me da en el renglón 4, cuando abro el corchete {

1 respuesta
LLoid

#4 Según el compilador que uses es posible que tengas que pasarle algo por parámetro al main(), en plan String[] Args. Si no dices el error concreto...

1 respuesta
G

#5 2 C:\Users\W7\Desktop\Proyectos C\prueba1.cpp main' must returnint'

1 respuesta
LLoid

#6

#include <stdio.h>

void main()
{
char ch;
ch = 'g';
printf("%c\n", ch);
if ('a' <= ch && ch <= 'z')
ch = ch - 'a' + 'A';
printf("%c\n", ch);
return 0;
}

Si te sigue dando error, cambia void main() por int main().

2 respuestas
G

#7 debe ser mi compilador porque me sigue dando error en el corchete :S

vale no he dicho nada, ahora si, con el int main

G

muchas gracias gente por la ayuda, ya lo tengo =)

1 respuesta
BLZKZ

#7 lol pero amigo! pones que una función void devuelva algo? GL con esas cosas xD

PD: #9 acostumbrate a poner el main con función que devuelve int (int main... ) y poner siempre el return 0 al final

1 respuesta
LOc0

.

LLoid

#10 Si te fijas, el código que puso #3 estaba con void pero el error que le daba era que el main no devolvía nada, eso depende mucho del compilador que se use que hay algunos que esas cosas las ignoran por completo xD

1 respuesta
BLZKZ

#12 ya bueno pero es que las funciones void no devuelven nada, asi que el cambio correcto seria cambiar el void por el int y poner el return 0. Además de ser una buena práctica y muy recomendable para ayuda a los depuradores xD

Usuarios habituales

  • BLZKZ
  • LLoid
  • LOc0
  • Geloon
  • m0rG
  • Yandr0s