Code:
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <math.h> #define MAX 200 void just_linea(char *linea, int ancho){ int i, espacios; espacios = (ancho - strlen(linea))/2; for(i=0; i < espacios; i++) printf(" "); printf("%s", linea); } void just_cadena(char *cadena, int ancho){ char subcadena[MAX]; int i, total; total = (int)ceil((float)strlen(cadena) / ancho); for(i=0; i < total; i++){ substring(cadena, subcadena, i*ancho, ancho); izquierda_linea(subcadena, ancho); } } void substring(char *cadena, char *subcadena, int inicio, int longitud){ int i; for(i=0; i < longitud && inicio+i < strlen(cadena); i++) subcadena[ i ] = cadena[ inicio+i ]; subcadena[ i ] = '\0'; } void centrar_linea(char *linea, int ancho){ int i, espacios; espacios = (ancho - strlen(linea)) / 2; for(i=0; i < espacios; i++) printf(" "); printf("%s", linea); } void derecha_linea(char *linea, int ancho){ int i, espacios; espacios = ancho - strlen(linea); for(i=0; i < espacios; i++) printf(" "); printf("%s", linea); } void izquierda_linea(char *linea, int ancho){ /* int i, espacios; espacios = ancho + strlen(linea); for(i=0; i < espacios; i++) printf(" ");*/ printf("%s", linea); } void izquierda_cadena(char *cadena, int ancho){ char subcadena[MAX]; int i, total; total = (int)ceil((float)strlen(cadena) / ancho); for(i=0; i < total; i++){ substring(cadena, subcadena, i*ancho, ancho); izquierda_linea(subcadena, ancho); } } void centrar_cadena(char *cadena, int ancho){ char subcadena[MAX]; int i, total; total = (int)ceil((float)strlen(cadena) / ancho); for(i=0; i < total; i++){ substring(cadena, subcadena, i*ancho, ancho); centrar_linea(subcadena, ancho); } } void derecha_cadena(char *cadena, int ancho){ char subcadena[MAX]; int i, total; total = (int)ceil((float)strlen(cadena) / ancho); for(i=0; i < total; i++){ substring(cadena, subcadena, i*ancho, ancho); derecha_linea(subcadena, ancho); } } int main(){ char cadena[MAX]; int wut; printf("Ingrese cadena: "); gets(cadena); printf("(1)-Alinear a la izquierda\n(2)-Alinear a la derecha\n(3)-centrar\n(4)-justificar\n\n"); scanf("%d",&wut); switch(wut){ case (1): printf("\n\nCadena alineada a la izquierda:\n"); fflush(stdin); izquierda_cadena(cadena, 80); printf("\n"); system("PAUSE"); break; case (2): printf("\n\nCadena alineada a la derecha:\n"); fflush(stdin); derecha_cadena(cadena, 80); printf("\n"); system("PAUSE"); break; case (3): printf("\n\nCadena centrada:\n"); centrar_cadena(cadena, 80); printf("\n"); system("PAUSE"); break; case (4): printf("\n\nCadena justificada:\n"); just_cadena(cadena,80); printf("\n"); system("PAUSE"); break; }
Comment