Ver Mensaje Individual
  #7 (permalink)  
Antiguo 14/11/2014, 01:43
Estdar123455
 
Fecha de Ingreso: noviembre-2014
Mensajes: 5
Antigüedad: 10 años
Puntos: 0
Respuesta: Capitalizar un nombre con c/c++

Bueno gracias a los que respondieron, pero mencione que no debia usar las tolower y to upper de la cctype.h

Bueno el caso es que ya realice el codigo y hace lo que yo queria que hiciera y el otro for que queria simplemente continua donde se quedo el anterior,es decir antes del espacio (por que el usuario va a introducir el Nombre y el Apellido y pues son dos palabras separadas y cada una debe de empezar con MAYUS y el resto deben ser minusculas) y los for son secuenciales uno tras otro
Código:
#include<iostream>
#include<stdio.h>
#include <stdlib.h>
int main ()
{
    int i;

    char nombre[20];

    printf("introduce tu nombre completo: ");
    gets(nombre);
    if(nombre[0]>=97 && nombre[0]<=122)
        printf("Nombre: %c",nombre[0]-32);
    else
    {printf("Nombre: %c",nombre[0]);}

    for(i=1; nombre[i]!=32;i++)//evaluar despues de el 0 de la cadena
    {
            if(nombre[i]>=65 && nombre[i]<=90)
                printf("%c", nombre[i]+32);
            else printf("%c", nombre[i]);
    }
    for(int j=i+1; j<i+2;j++)
            {
                if(nombre[j]>=97 && nombre[j]<=122)
                printf("\nApellido: %c", nombre[j]-32);
                else
                    {printf("\nApellido: %c",nombre[j]);}

            }
    for(int k=i+2; nombre[k]!='\0';k++)
            {
                if(nombre[k]>=65 && nombre[k]<=90)
                printf("%c", nombre[k]+32);
            else printf("%c", nombre[k]);
            }
    return 0;
    }
Caso contrario a que cuando yo usaba string en lugar de caracter en el string si debia saber exactamente las posiciones en donde se habia quedado la cadena al llegar al espacio y me ignoraba la conversion de las letras que debian ir en MAYUS, o sea las primeras de cada palabra