• Sábado 4 de Mayo de 2024, 19:38

Autor Tema:  Iniciales En Mayusculas  (Leído 1195 veces)

powers

  • Nuevo Miembro
  • *
  • Mensajes: 15
    • Ver Perfil
Iniciales En Mayusculas
« en: Jueves 8 de Abril de 2004, 06:00 »
0
Hola a todos los integrantes de Foros del Web.

Estoy haciendo el siguiente programa el cual debe poner solo las iniciales en mayusculas, he intentado usar la funcion " toupper " pero me imprime el texto sin ningun cambio.

ejemplo: casa de color azul
resultado: Casa De Color Azul

si alguien puede determianr el problema por favor diganme donde esta para corregirlo. Gracias

#include <iostream.h>
#include <string.h>
#include <ctype.h>
#include<conio.h>
#include<stdio.h>
void main()
{
char cad[100];
int cont;
printf("\n\tPrograma de manejo de cadena v.1.0\n\n");
printf("Escriba una cadena (40 caracteres max.)\n ");
gets(cad);

for(cont=0;cad[cont]!='\0';cont++)
{
if(cad[cont]==' ')toupper(cad[cont++]);
}
printf("\nIniciales en mayusculas: ");
puts(cad);
}


Gracias

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: Iniciales En Mayusculas
« Respuesta #1 en: Jueves 8 de Abril de 2004, 07:16 »
0
realiza varias modificaciones,
primero no incluyas lo que no vayas a usar.

segundo inicializa siempre los vectores con null,
tercero controla mejor las iteraciones del ciclo
cuarto una cosa es
 c++;
y otra muy diferente
 ++c;

como lo tienes resulta que quieres colocar en mayuscula el espacio!!!!
y luegho si te mueves una posicion.
Si lo dejas como ++c; incrementas la posicion y luego cambias a mayuscula.

quinto segun la norma ANSI main siempre devuelve entero.
Resumen
queda asi:

Código: Text
  1.  
  2. #include &#60;string.h&#62;
  3. #include&#60;conio.h&#62;
  4. #include&#60;stdio.h&#62;
  5.  
  6. int main()
  7. {
  8.   char cad[100];
  9.   int cont;
  10.  
  11.   memset(cad, '&#092;0', sizeof(char)*sizeof(cad));
  12.  
  13.   printf(&#34;&#092;n&#092;tPrograma de manejo de cadena v.1.0&#092;n&#092;n&#34;);
  14.   printf(&#34;Escriba una cadena (40 caracteres max.)&#092;n &#34;);
  15.   gets(cad);
  16.  
  17.   for(cont=0;cont&#60;sizeof(cad);cont++)
  18.   {
  19.      if(cad[cont]==' ')
  20.        toupper(cad[++cont]);
  21.   }
  22.   printf(&#34;&#092;nIniciales en mayusculas: &#34;);
  23.   puts(cad);
  24.  
  25.   return 1;
  26. }
  27.  
  28.  
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io