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

 

 


Tema destacado:


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  ayuda con lenguaje c por favor!
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: ayuda con lenguaje c por favor!  (Leído 2,126 veces)
mariaorlando0922

Desconectado Desconectado

Mensajes: 8


Ver Perfil
ayuda con lenguaje c por favor!
« en: 8 Febrero 2013, 01:14 am »

al ejecutar el programa no me cambia las letras de mayusculas a minusculas o al reves. necesito ayuda. que tengo mal hecho?
#include <stdlib.h>
#include <conio.h>
#include <stdio.h>
#include <ctype.h>

void es_vocal(char *txt, int *v);
void transforma (char *txt, int v,int caso );


main()
{
      char texto[100], *txt, opc,t;
      int i=0, contt=0, cond=0,vocal;
     
     
      printf("Cargue un texto menor a 100 caracteres\n");
      printf("control fin de datos\n");
     
      while ((t=getchar())!=EOF)
      {
            texto[contt]=t;
            contt++;
      }
      texto[contt]='\0';
      txt=texto;
      clrscr();
      do
      {
               printf("\t\t menu de opciones\n");
               printf("1-> CONSONANTES DE MINUSCULAS A MAYUSCULAS\n");
               printf("2-> CONSONANTES DE MAYUSCULAS A MINUESCULAS\n");
               printf("3-> SALIR\n");
               opc=getch();
               
               switch(opc)
               {
                          case'1': while(i<contt)
                                   {
                                                       if(isalpha(*txt)>0)
                                                       {
                                                                         es_vocal(txt, &vocal);
                                                                         transforma(txt,vocal,1);
                                                       }
                                                       *txt++;
                                                       i++;
                                   }
                                   
                                                       // MUESTRA
                                                       for(i=0;i<contt;i++)
                                                        {
                                                                           putchar(texto);
                                                        }
                                                                   
                                  break;
                                  case'2':while(i<contt)
                                   {
                                                       if(isalpha(*txt)>0)
                                                       {
                                                                         es_vocal(txt, &vocal);
                                                                         transforma(txt,vocal,2);
                                                       }
                                                       *txt++;
                                                       i++;
                                   }
                                   
                                                       // MUESTRA
                                                       for(i=0;i<contt;i++)
                                                        {
                                                                           putchar(texto);
                                                        }
                                  break;
                                  case'3':cond=1;
                                  break;
                                  default:clrscr();
                                          printf("Opcion incorrecta\nIngrese opcion\n");
                                  break;
               }
      }while(cond!=1 && opc!=3);
system("PAUSE");   
return ;
}

void es_vocal(char *txt, int *v)
{
     switch(*txt)
     {
                case'a':
                case'e':
                case'i':
                case'o':
                case'u':
                case'A':
                case'E':
                case'I':
                case'O':
                case'U':
                *v=1;
                break;
                default: *v=0;
                break;
     }
     
}

                         
void transforma (char *txt, int v,int caso)
{
    switch(caso)
     {
                 case'1':    if((v)==0)
                             {
                                        if(isupper(*txt)<=0)
                                        {
                                          *txt=toupper(*txt);
                                        }
                                        else
                                        *txt=tolower(*txt);
                                       
                             }
                 
                 break;
                 case'2':  if((v)==0)
                             {
                                      if(isupper(*txt)>0)
                                        {
                                                          *txt=tolower(*txt);
                                        }
                                        else
                                        *txt=toupper(*txt);
                             }
                 break;
                 default:
                 break;
                 
     }
     return;
}


En línea

rir3760


Desconectado Desconectado

Mensajes: 1.639


Ver Perfil
Re: ayuda con lenguaje c por favor!
« Respuesta #1 en: 8 Febrero 2013, 01:58 am »

Lo primero que debes hacer es evitar el uso de la biblioteca conio de borland y cambiar la definición de la función main. Mas información en el tema |Lo que no hay que hacer en C/C++. Nivel basico|.

Para ser honesto no lo revise a fondo pero un error importante se encuentra en la función "transforma", ahí los casos se indican con caracteres:
Código
  1. case'1':    if((v)==0)
  2. /* ... */
  3. case'2':
  4.  
Debes cambiarlo para que utilice enteros:
Código
  1. case 1:    if((v)==0)
  2. /* ... */
  3. case 2:
  4.  
Empieza con eso, seguro alguien mas lo revisa con calma.

Un saludo


En línea

C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language
mariaorlando0922

Desconectado Desconectado

Mensajes: 8


Ver Perfil
Re: ayuda con lenguaje c por favor!
« Respuesta #2 en: 11 Febrero 2013, 14:36 pm »

gracia!
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
ayuda con lenguaje c
Ejercicios
jgilberto 0 3,241 Último mensaje 1 Agosto 2009, 04:02 am
por jgilberto
Ayuda con lenguaje
Programación General
Fuen 4 2,768 Último mensaje 3 Febrero 2011, 23:36 pm
por Stoya
Ayuda Con Asp.net lenguaje C#
.NET (C#, VB.NET, ASP)
Algotrix 2 3,776 Último mensaje 2 Marzo 2011, 19:20 pm
por Algotrix
AYUDA CON LENGUAJE ENSAMBLADOR
ASM
nuru_chan 1 3,256 Último mensaje 12 Diciembre 2012, 18:12 pm
por Eternal Idol
AYUDA LENGUAJE C « 1 2 »
Programación C/C++
LeoJ24 10 6,618 Último mensaje 9 Enero 2013, 02:19 am
por Kherom
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines