C – Convertir una letra mayúscula a minúscula

Un progtwig muy simple. Solo quiero convertir una ‘A’ en una ‘A’, pero la salida me está dando ‘A’.

#include  int main(void) { putchar(lower('A')); } lower(a) int a; { if ((a >= 65) && (a >= 90)) a = a + 32; return a; } 

Has arruinado la segunda parte de tu condición. Eso debería ser a <= 90 .

Además, para su información, hay una función de biblioteca de C tolower que ya hace esto:

 #include  #include  int main() { putchar(tolower('A')); } 

Creo que quieres <= 90

 lower(a) int a; { if ((a >= 65) && (a <= 90)) a = a + 32; return a; } 

Aunque tolower probablemente solo te ahorraría la molestia a menos que quisieras hacerlo tú mismo. http://www.cplusplus.com/reference/cctype/tolower/

En ASCII, el alfabeto en mayúsculas y minúsculas están separados 0x20, por lo que esta es otra forma de hacerlo.

 int lower(int a) { if ((a >= 0x41) && (a <= 0x5A)) a |= 0x20; return a; } 

Una forma de asegurarse de que sea correcta es mediante el uso de caracteres en lugar de un código ASCII.

 if ((a >= 65) && (a <= 90)) 

Lo que quieres es bajar un caso. es mejor usar algo como if (a >= 'A' && a <= 'Z') . No tienes que recordar todo el código ascii :)

Puede convertir un carácter de minúsculas a mayúsculas y viceversa utilizando la manipulación de bits como se muestra a continuación:

 #include int main(){ char c; printf("Enter a character in uppercase\n"); scanf("%c",&c); c|=' '; // perform or operation on c and ' ' printf("The lower case of %c is \n",c); c&='_'; // perform 'and' operation with '_' to get upper case letter. printf("Back to upper case %c\n",c); return 0; } 
 #include  #include  int main() { char string[] = "Strlwr in C"; printf("%s\n",strlwr(string)); return 0; } 

use strlwr para bajar la caja

Si la condición es incorrecta. También es necesario el tipo de retorno para menor.

 #include  int lower(int a) { if ((a >= 65) && (a <= 90)) a = a + 32; return a; } int _tmain(int argc, _TCHAR* argv[]) { putchar(lower('A')); return 0; } 
 #include void main() { char a; clrscr(); printf("enter a character:"); scanf("%c",&a); if(a>=65&&a<=90) printf("%c",a+32); else printf("type a capital letter"); getch(); } 

Usa este código

 #include #include #include void main(){ char a[10]; clrscr(); gets(a); int i,length=0; for(i=0;a[i]!='\0';i++) length+=1; for(i=0;i