Cita:
Iniciado por kutcher Para que utilizar un segundo for si con solo uno te basta y sobra un ejemplo:
Te propongo las siguientes mejoras:
* No uses la librería "ctype", es un requisito.
* si str[30], entonces scanf("%30[^\n]", str) es inseguro, te deja introducir 30 caracteres más el correspondiente nulo.
* es más estándar poner return EXIT_SUCCESS a return 0.
Código C++:
Ver original#include <stdbool.h>
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
char str[31];
bool toCapital = true;
char* ptr = str - 1;
printf("Introduce tu nombre completo: ");
while( *++ptr )
{
if( *ptr == ' ' )
toCapital = true;
else if( toCapital == true )
{
if ( *ptr >= 'a' && *ptr <= 'z' )
*ptr += ('A' - 'a');
toCapital = false;
}
else
{
if ( *ptr >= 'A' && *ptr <= 'Z' )
*ptr += ('a' - 'A');
}
}
return EXIT_SUCCESS;
}