| 
	
		|  Autor | Tema: De minúscula a mayúscula a nivel de bits en lenguaje C.  (Leído 19,116 veces) |  
	| 
			| 
					
						| rir3760 
								       
								
								 Desconectado 
								Mensajes: 1.639
								
								
								
								
								
								   | 
 
solo me encontré con algo que no puedo resolver (en mayúscula). El problema se debe a la conversión del espacio en "Roberto Daniel", este se sustituye por el carácter '\0' y es la causa de que solo se imprime la primera palabra. Para solucionarlo solo debes convertir los caracteres alfabéticos, esa verificación la puedes realizar con la función isalpha (prototipo en <ctype.h>). Un saludo 
 
 |  
						| 
								|  |  
								|  |  En línea | 
 
 C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.--
 Kernighan & Ritchie, The C programming language
 |  |  |  | 
			| 
					
						| DanielPy 
								
								 Desconectado 
								Mensajes: 145
								
								   | 
 
Hola ivancea96. Ok, funciona a la perfección y complementándolo con lo de xiruko tengo todo resuelto (igual lo de xiruko no se le puede cambiar nada), además me da mucha satisfacción cuando el código es extremadamente conciso, feliz 2014.- Hola rir3760, muchas gracias por el aporte, feliz 2014.- feliz 2014 para todos. Saludos. Daniel 
 
 |  
						| 
								|  |  
								|  |  En línea | 
 
 abraza las cosas y personas malas como si fueran tu mas preciada joya,Son tus mas grandes maestros de paciencia sabiduría y amory cuando lo abrazas dejan de causar dolor.-
 |  |  |  | 
			| 
					
						| leosansan 
								       
								
								 Desconectado 
								Mensajes: 1.314
								
								
								
								
								
								   | 
 
...................................Sólo le veo un pero a lo que haces: modificas la cadena. Y si tuviera que usarla a posteriori no le valdría, a no ser que haga una copia previa de la cadena.  Es una chorrada, ¡¡pero!!, podría ser.Pensándolo un poco mejor también se podría hacer con máscaras y operaciones a nivel de bit.
 Felices fiestas.
 ......................................
 
 
 Lo que yo propongo es cuasi-igual, sólo que no modifico la cadena original tan solo la imprimo y paso de la variable "len" ya que se puede evitar su uso.
 
 Salida:
 L -> mayusculae -> minuscula
 o -> minuscula
 S -> mayuscula
 a -> minuscula
 n -> minuscula
 S -> mayuscula
 a -> minuscula
 n -> minuscula
 -> minuscula
 L -> mayuscula
 e -> minuscula
 o -> minuscula
 N -> mayuscula
 
 En mayusculas: LEOSANSAN LEON
 
 En minusculas: leosansan leon
 
 
 #include <stdio.h> int main(){	char  cadena[]="LeoSanSan LeoN";	int i;	for (i=0; cadena[i]; i++)		if( cadena[i] & 0x20 )			printf("%c -> minuscula\n", cadena[i]);		else			printf("%c -> mayuscula\n", cadena[i]); 	printf("\nEn mayusculas: ");	for (i=0; cadena[i]; i++)		printf("%c", cadena[i]& 0xDF);	putchar ('\n');	printf("\nEn minusculas: ");	for (i=0; cadena[i]; i++)		printf("%c", cadena[i]| 0x20);    putchar ('\n');	return 0;} 
 ¡¡¡¡ Saluditos! ..... !!!!P.D: Por ciero, ¿Daniel, Roberto o Pino1952 ? |  
						| 
								|  |  
								| « Última modificación: 31 Diciembre 2013, 22:34 pm por leosansan » |  En línea | 
 
 |  |  |  | 
			| 
					
						| DanielPy 
								
								 Desconectado 
								Mensajes: 145
								
								   | 
 
Hola leosansan.- Amigo, muy bien otra muy buena idea, excelente.- P.D: Por ciero, ¿Daniel, Roberto o Pino1952 ? Me llaman Roberto Daniel Virgili(Dani para las chicas menores de 30)y el seudónimo Pino1952 es también mio, la intriga es porque frecuentas ese foro, espero urgente respuesta…              Saludos. Daniel  |  
						| 
								|  |  
								|  |  En línea | 
 
 abraza las cosas y personas malas como si fueran tu mas preciada joya,Son tus mas grandes maestros de paciencia sabiduría y amory cuando lo abrazas dejan de causar dolor.-
 |  |  |  | 
			| 
					
						| leosansan 
								       
								
								 Desconectado 
								Mensajes: 1.314
								
								
								
								
								
								   | 
 |  
						| 
								|  |  
								| « Última modificación:  1 Enero 2014, 06:34 am por leosansan » |  En línea | 
 
 |  |  |  | 
			| 
					
						| DanielPy 
								
								 Desconectado 
								Mensajes: 145
								
								   | 
 
Hola amigos. Bueno el caso es que ahora necesito que me digan cómo seguir,  ¿como paso el nuevo binario a la “d”  para que se transforme en “D”?.- Los código que Uds. expusieron no tienen desperdicio pero después de tanta información suelo hacer mi propia versión para practicar y asimilar lo expuesto.- ivancea96, ya que no puedo lograrlo espero que hagas un esfuerzo para refinar tú código me da resultados inesperados (ver imagen), lo necesito para hacer mi programa más conciso, no tener que poner el resultado binario en una cadena y luego pasarlo a entero.-  Espero que se entienda lo expuesto en la primer parte, es lo que me falta para pasar de “daniel” a “Daniel”.-      #include<stdio.h>#include <stdlib.h> void binarioConvertir(int, char[]); int main(void){     char cadena[6] = "daniel", cad_binaria[8] = "";    int ascii=0, i=0, binarioMayuscula=0;     while(i<6){        ascii = cadena[i];        binarioConvertir(ascii,cad_binaria);              printf("\n La letra %c en decimal %3d en binario %s", cadena[ i],  ascii,  cad_binaria);        cad_binaria[1] = '0';        printf(" mayuscula --> %s", cad_binaria);        binarioMayuscula = atoi( cad_binaria);		i++;    }         return 0;} void binarioConvertir(int num, char cad[]){    int i=0, izq=0, der=0, aux=0;    while(num>0){         if(num%2 == 0)             cad[i] = '0';         else             cad[i] = '1';         num = num/2;         i++;    }     der=6;    while(izq<3){        aux      = cad[izq];        cad[izq] = cad[der];;        cad[der] = aux;        der--;        izq++;    }    cad[7] = '\0';}
 Saludos. Daniel     |  
						| 
								|  |  
								|  |  En línea | 
 
 abraza las cosas y personas malas como si fueran tu mas preciada joya,Son tus mas grandes maestros de paciencia sabiduría y amory cuando lo abrazas dejan de causar dolor.-
 |  |  |  | 
			| 
					
						| ivancea96 
								       
								
								 Desconectado 
								Mensajes: 3.412
								
								 
								ASMático
								
								
								
								
								
								     | 
 
Bueno, en priemr lugar, es eno es mi código -.-'En segundo lugar, a mi me da resultados correctos.
 |  
						| 
								|  |  
								|  |  En línea | 
 
 |  |  |  | 
			| 
					
						| DanielPy 
								
								 Desconectado 
								Mensajes: 145
								
								   | 
 
Hola ivancea96.  Ese no es el del error, el que dejo a continuación es el que me da resultados incorrectos, es obvio que es mío el error pero no logro corregirlo.- #include <stdio.h>#include <math.h> void binario(int); int main(void){ 	char cadena[6] = "daniel";	int ascii=0, i=0; 	while(i<6){		ascii = cadena[i];		printf("\n La letra %c en decimal %3d en binario ", cadena[ i],  ascii);		binario(ascii);		i++;	}  	return 0;} void binario(int num){	int temp=0, i;	for(i=0; num>0; i++){		temp+=( num%2) * pow(10,  i);		num/=2;	}}
 Saludos. Daniel     |  
						| 
								|  |  
								|  |  En línea | 
 
 abraza las cosas y personas malas como si fueran tu mas preciada joya,Son tus mas grandes maestros de paciencia sabiduría y amory cuando lo abrazas dejan de causar dolor.-
 |  |  |  | 
			| 
					
						| ivancea96 
								       
								
								 Desconectado 
								Mensajes: 3.412
								
								 
								ASMático
								
								
								
								
								
								     | 
 
A mi me va perfecto. |  
						| 
								|  |  
								|  |  En línea | 
 
 |  |  |  | 
			| 
					
						| DanielPy 
								
								 Desconectado 
								Mensajes: 145
								
								   | 
 
Hola.Una última cosa, ¿copiaste y pegaste el código que yo postee?.-
 
 Saludos.
 Daniel
 |  
						| 
								|  |  
								|  |  En línea | 
 
 abraza las cosas y personas malas como si fueran tu mas preciada joya,Son tus mas grandes maestros de paciencia sabiduría y amory cuando lo abrazas dejan de causar dolor.-
 |  |  |  |  |  
 
	
 
 
				
					
						| Mensajes similares |  
						|  | Asunto | Iniciado por | Respuestas | Vistas | Último mensaje |  
						|   |   | convertir txt a mayuscula minuscula mayuscuala... Programación Visual Basic
 | 4D1cTo | 4 | 6,274 |  18 Junio 2006, 15:10 pm por Hadess_inf
 |  
						|   |   | Convertir cadena minuscula en mayuscula Programación C/C++
 | delirio | 3 | 14,266 |  28 Noviembre 2010, 04:36 am por delirio
 |  
						|   |   | [Python] - Ejercicio de Mayúscula y Minúscula Python
 | ChicoMaravilla | 2 | 13,511 |  3 Diciembre 2010, 02:17 am por ChicoMaravilla
 |  
						|   |   | convertir minúscula a mayúscula
							« 1 2 » Programación C/C++
 | m@o_614 | 10 | 49,417 |  24 Abril 2017, 12:31 pm por NikNitro!
 |  
						|   |   | De minúscula a mayúscula a nivel de bits (lenguaje C.) Programación C/C++
 | NOB2014 | 4 | 4,405 |  21 Marzo 2014, 02:44 am por rir3760
 |    |