|
91
|
Programación / Programación C/C++ / Arreglos,punteros y sprintf.-
|
en: 12 Diciembre 2013, 21:46 pm
|
Hola a todos. Estoy estudiando punteros y me encuentro con este inconveniente que no puedo resolver, bueno no les doy más explicaciones porque en la captura queda claro que en la cadena concatenada me está tomando el salto de línea de las cadenas individuales, eso es lo que deseo resolver.- #include <stdio.h> #define MAX 30 int main(void){ char nombre_completo[93], *ptrNC = nombre_completo, primer_nombre[MAX+1], *ptrPN = primer_nombre, segundo_nombre[MAX+1], *ptrSN = segundo_nombre, apellido[MAX+1], *ptrAP = apellido; int longitud; printf("\n\n Ingrese primer nombre.....: "); fgets(ptrPN , MAX , stdin ); printf("\n Ingrese segundo nombre....: "); fgets(ptrSN , MAX , stdin ); printf("\n Ingrese apellido..........: "); fgets(ptrAP , MAX , stdin ); longitud = sprintf(ptrNC , "%s %s %s", ptrPN , ptrSN , ptrAP ); printf("\n El nombre completo es: %s.\n", ptrNC ); printf("\n Total de caracteres..: %d", longitud ); return 0; }
Saludos. Daniel
|
|
|
92
|
Programación / Programación C/C++ / ¿Una manera distinta de ordenar arreglos/vectores.-?
|
en: 3 Diciembre 2013, 21:03 pm
|
Hola amigos. Estoy en un verdadero inconveniente con esto de ordenar un arreglo, no pretendo redescubrir la rueda, simplemente estoy practicando y hace mucho tiempo se me antojó esta manera de ordenar pero no logro que funcione.- Con respecto a la cantidad de elementos del arreglo y hacerlo en una función luego lo arreglo, el tema es que alguna mente iluminada me diga dónde está el error.- Debo aclarar que en algunos casos funciona, me parece que el error se produce cuando el menor/mayor arrancan muy cerca de los extremos.- #include <stdio.h> void mostrar(int numeros[]); int main(void){ int numeros[] = {77,58,7,19,62,99,44,49,15,33}; int menor=9999, mayor=0, pos_men=0, pos_may=0, men_cam=0, may_cam=0,i, j=0, m=9; mostrar(numeros); for(i=0; i<5; i++){ men_cam = numeros[i]; may_cam = numeros[m]; for(j=i; j<=m; j++){ if(numeros[j] < menor){ menor = numeros[j]; pos_men = j; } if(numeros[j] > mayor){ mayor = numeros[j]; pos_may = j; } } numeros[i] = menor; numeros[pos_men] = men_cam; numeros[m] = mayor; numeros[pos_may] = may_cam; mostrar(numeros); printf("--> Menor=%d [%d] --- Mayor=%d [%d]", menor , pos_men +1, mayor , pos_may +1); menor=9999; mayor=0; m--; } mostrar(numeros); return 0; } void mostrar(int numeros[]){ int t; for(t=0; t<10; t++){ } }
Bueno espero ayuda.- Saludos. Daniel
|
|
|
93
|
Programación / Programación C/C++ / Re: Aprender C
|
en: 1 Diciembre 2013, 21:03 pm
|
Hola a todos. Alguien me podría decir si existe alguna página que contenga este libro para descargar.- C ---> C++ ---> Java ---> UML
desde ya muchas gracias. Daniel.
|
|
|
95
|
Programación / Programación C/C++ / Re: ayuda con vectores
|
en: 19 Noviembre 2013, 19:30 pm
|
Hola a todos. Quiero dejar aclarado por si todavía no se percataron, yo siempre pongo la misma duda en por lo menos 3 foros (exactamente el mismo texto) siempre me ha dado muy buen resultado, es una buena manera de recabar la experiencia de muchos.- Si después de esto me quieren tirar la oreja o darme de baja del foro lo acepto pero siempre voy a defender esta postura.-
Saludos. Daniel
|
|
|
98
|
Programación / Programación C/C++ / Acceder de forma individual a cada digito de un número entero(sin sprintf)
|
en: 15 Noviembre 2013, 22:46 pm
|
Hola a todos. Esta es la manera que estoy usando para poder acceder de forma individual a cada unos de los dígitos de un número, alguien sabe si se puede hacer lo mismo pero a mano o sea sin usar sprintf.- #include <stdio.h> #include <stdlib.h> #include <limits.h> #include <ctype.h> int main(void) { int numero, i, longitud, ok = 0, ch; char cad[11]; do{ printf("\n Ingresa un numero entero(maximo %d)....: ", INT_MAX ); ok = scanf("%d", &numero ) == 1 && numero >= 1 && numero <= INT_MAX ; while ((ch = getchar()) != EOF && ch != '\n'); }while(!ok); for(i = 0; i < longitud; i++){ printf("\n Posicion[%d] %c ", i +1, cad [i ]); } return 0; }
Bueno eso es todo.- Un saludo. Daniel
|
|
|
100
|
Programación / Programación C/C++ / Re: Printf un poco especial en lenguaje C
|
en: 12 Noviembre 2013, 14:44 pm
|
Hola rir3760. La comprobación "!isspace(ch)" sera verdadera cuando se encuentre cualquier carácter que no sea espacio blanco, si eso sucede ya podemos concluir que la linea no es valida. Me imagino el gesto que pondras cuando leas esto (¿prejuicioso?) pero no puedo dejarlo pasar sin entenderlo.- Ingreso 12.50 porque debo suponer que isspace me va a encontrar el punto específicamente si lo que detecta es: Comprueba sin un carácter es de tipo espacio.
isspace es una macro que verifica el entero c pertenece grupo de caracteres de espacio, ' ', tab, retorno de carro, nueva línea, tabulador vertical o salto de página. El comportamiento depende de la categoría local de LC_CTYPE.
La línea de código con isspace funciona a la perfección, espero tu aclaración.- Un saludo cordial. Daniel
|
|
|
|
|
|
|