elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a Git (Primera Parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Alguien me podria ayudar!
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Alguien me podria ayudar!  (Leído 4,343 veces)
Alanis22

Desconectado Desconectado

Mensajes: 1


Ver Perfil
Alguien me podria ayudar!
« en: 4 Febrero 2013, 18:20 pm »

Recien empiezo en esto de c++ y me pidieron hacer un programa para convertir a mayusculas o viceversa!! y esto es lo k llevo si alguien pudiera orientarme se lo agradeceria!!!

#include "stdafx.h"
#include "ctype.h"


int main()

{
   char S[20];

   int a;

   printf("Escribe tu nombre:\n");

   scanf("%str",&a);

                         
   printf("%s\n","tu nombre es:", tolower S[a]); 

   getchar();
   getchar();
   return 0;
}



En línea

naderST


Desconectado Desconectado

Mensajes: 625



Ver Perfil WWW
Re: Alguien me podria ayudar!
« Respuesta #1 en: 4 Febrero 2013, 18:25 pm »

Antes de lanzarte a programar debes aprender bien el lenguaje. Tienes la idea, tolower te permite convertir un caracter a minúscula, entonces lo que debes ir haciendo es recorrer la cadena e ir convirtiendo cada caracter a minúscula o mayúscula según sea el caso.


En línea

DickGumshoe


Desconectado Desconectado

Mensajes: 480



Ver Perfil WWW
Re: Alguien me podria ayudar!
« Respuesta #2 en: 5 Febrero 2013, 01:16 am »

Hola.

En un principio, te faltan bibliotecas, como stdio.h, que es necesaria para las funciones de entrada y salida (printf y scanf, en tu caso). También te sobra stdafx.h.

Con scanf se supone que quieres pedir el nombre, pero no sé qué has hecho...

Cuando se pasa el nombre de mayúsculas a minúsculas con tolower(), se debe hacer de carácter en carácter. Por eso creamos un contador, de forma que con el bucle for, podamos recorrer la cadena S, pasando todos los caracteres a minúsculas (para ello es recomendable conocer la longitud de la cadena son strlen(), para no hacer cálculos innecesarios).

He editado el código con los fallos que has tenido.

Código
  1. #include <stdio.h> //Para usar printf() y scanf()
  2. #include <string.h> //Para contar el número de caracteres del nombre
  3. #include <ctype.h> //Para usar tolower()
  4.  
  5.  
  6. int main()
  7.  
  8. {
  9.   char S[20];
  10.  
  11.   int longitud, i;
  12.  
  13.   printf("Escribe tu nombre:\n");
  14.   gets(S); //El nombre es una cadena de caracteres, no un número entero como habías puesto en tu código
  15.    longitud = strlen(S); //Longitud contiene el número de caracteres de S.
  16.  
  17.   printf("%s\n","Tu nombre en minúsculas es: ");
  18.  
  19.   for(i=0; i<longitud; i++) printf("%c", tolower(S[i])); //tolower() pasa UN único carácter de mayúsculas a minúsculas. Por eso es necesario recorrer la cadena S entera utilizando dicha función.
  20.  
  21.   getchar();
  22.   return 0;
  23. }
  24.  

Ahora, intenta pasar una cadena de minúsculas a mayúsculas, que también te lo pide el ejercicio (para ello, es necesaria la función toupper() ).

Cualquier duda, no dudes en preguntar.  ;)

PD: Lo que estás aprendiendo es C, no C++.  ;)
« Última modificación: 5 Febrero 2013, 17:29 pm por DickGumshoe » En línea

0xDani


Desconectado Desconectado

Mensajes: 1.077



Ver Perfil
Re: Alguien me podria ayudar!
« Respuesta #3 en: 5 Febrero 2013, 15:44 pm »

@DickGumshoe, creo que en esta linea:

Código
  1. for(i=0; i<longitud; i++) printf("%c", tolower(S));

Te ha faltado poner el indice de S en la funcion tolower()  ;)
En línea

I keep searching for something that I never seem to find, but maybe I won't, because I left it all behind!

I code for $$$
Hago trabajos en C/C++
Contactar por PM
DickGumshoe


Desconectado Desconectado

Mensajes: 480



Ver Perfil WWW
Re: Alguien me podria ayudar!
« Respuesta #4 en: 5 Febrero 2013, 17:28 pm »

@DickGumshoe, creo que en esta linea:

Código
  1. for(i=0; i<longitud; i++) printf("%c", tolower(S));

Te ha faltado poner el indice de S en la funcion tolower()  ;)


Sí, es verdad. Lo puse, pero al hacer una prueba, creo que copié el código equivocado... Gracias por corregir, ahora lo edito.  ;)
En línea

leosansan


Desconectado Desconectado

Mensajes: 1.314


Ver Perfil
Re: Alguien me podria ayudar!
« Respuesta #5 en: 5 Febrero 2013, 21:56 pm »

También puedes ahorrarte el uso de la librería string y la variable longitud usando el for así:
Código
  1. for(i=0; S[i]!='\0'; i++)
Saluditos!.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
alguien me podria ayudar ?
Desarrollo Web
7andres7 1 2,176 Último mensaje 16 Mayo 2012, 14:07 pm
por Neibar
alguien me podria ayudar con esto
Seguridad
gutyalbo 0 3,744 Último mensaje 20 Marzo 2013, 08:24 am
por gutyalbo
Alguien podria ayudar a ocultar completamente mi pc ante los ojos de internet?
Hacking
W0LFeR 7 5,450 Último mensaje 29 Abril 2013, 13:29 pm
por -- KiLiaN --
MOVIDO: alguien me podria ayudar? alguien se ofrece a..?
Multimedia
Songoku 0 3,838 Último mensaje 26 Abril 2013, 19:44 pm
por Songoku
Alguien me podria ayudar con Cybergate?
Dudas Generales
pokerface 0 2,918 Último mensaje 5 Septiembre 2013, 11:31 am
por pokerface
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines