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

 

 


Tema destacado: Los 10 CVE más críticos (peligrosos) de 2020


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

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Manipular cadenas
« en: 27 Junio 2010, 22:50 pm »

otra preguntita me disculpan pero no se a quien preguntar , es otro programita en C es sobre un menu el ejercicio dice que realice un programa que pida una cadena de caracteres y que muestre un menu con las siguienetes opciones
1.cadena al reves
2.numero de caracteres
3.cadena en mayuscula
4.cadena en minusculas
5.salir
esto es lo que llevo hasta ahora, lo estoy haciendo con while pero no puedo lograr que me muestre la opcion si pulso el num 1 si no q me sale corrido, ayudenme porfa, ha me han dicho que con case es mejor pero no se talves me proporcionan un ejemplo para intntarlo Gracias por Todo.
aca les muestro lo que e intentado hacer:
Código:
 #include <stdio.h>
void main (void)
{
    char c, palabra[21];
    int i;
int opcion;

printf("Teclee la palabra que decee:\n");
    scanf("%s", palabra);
    i =0;
printf("Eliga la opcion que quiere \n:");
printf("\n1-->numero de caracteres");
printf("\n2-->cadena al revez");
printf("\n3-->cadena en mayuscula");
printf("\n4-->cadena en minuscula");
printf("\n5-->salir\n  opcion:");
scanf("%s",&opcion);

  
    while(palabra[i++] != '\0');
      
    printf("%s tiene %d letras.\n", palabra, i);
    printf("%s escrita al revés es: ", palabra);
    while (i >= 0)
        printf("%c", palabra[i--]);


}




« Última modificación: 27 Junio 2010, 23:00 pm por Littlehorse » En línea

Littlehorse
All the world's a stage
Moderador
***
Desconectado Desconectado

Mensajes: 2.714


Nie Dam Sie


Ver Perfil WWW
Re: Manipular cadenas
« Respuesta #1 en: 27 Junio 2010, 23:01 pm »

mili03, títulos descriptivos por favor. :)

Prueba con un switch-case para las opciones y con funciones para cada tarea.

Saludos


En línea

An expert is a man who has made all the mistakes which can be made, in a very narrow field.
@synthesize
Wiki

Desconectado Desconectado

Mensajes: 640


Another Brick in the Wall


Ver Perfil WWW
Re: Manipular cadenas
« Respuesta #2 en: 27 Junio 2010, 23:04 pm »

http://c.conclase.net/librerias/?ansilib=string#inicio
En línea

leogtz
. . .. ... ..... ........ ............. .....................
Colaborador
***
Desconectado Desconectado

Mensajes: 3.069


/^$/


Ver Perfil WWW
Re: Manipular cadenas
« Respuesta #3 en: 27 Junio 2010, 23:07 pm »

Deber usar int main(), no void main(), un compilador decente no te dejaría compilar.
En línea

Código
  1. (( 1 / 0 )) &> /dev/null || {
  2. echo -e "stderrrrrrrrrrrrrrrrrrr";
  3. }
  4.  
http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com
nicolas_cof


Desconectado Desconectado

Mensajes: 348


Into the Wild


Ver Perfil WWW
Re: Manipular cadenas
« Respuesta #4 en: 27 Junio 2010, 23:09 pm »

mili03, ademas de lo ya mencionado

Código:
int main( void ) {  }

http://foro.elhacker.net/programacion_cc/lo_que_no_hay_que_hacer_en_cc_nivel_basico-t277729.0.html

Otra recomendacion seria usar fgets() y no scanf()

Y otra seria no abusar del uso de printf() ya que con uno podrias englobar todas esas cadenas

Salu10.
En línea

leogtz
. . .. ... ..... ........ ............. .....................
Colaborador
***
Desconectado Desconectado

Mensajes: 3.069


/^$/


Ver Perfil WWW
Re: Manipular cadenas
« Respuesta #5 en: 27 Junio 2010, 23:11 pm »

Viendo el código, me parece que i se incrementa de más, prueba a hacer:

Código:
while(palabra[i++] != '\0');
    i--;
   
En línea

Código
  1. (( 1 / 0 )) &> /dev/null || {
  2. echo -e "stderrrrrrrrrrrrrrrrrrr";
  3. }
  4.  
http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com
nicolas_cof


Desconectado Desconectado

Mensajes: 348


Into the Wild


Ver Perfil WWW
Re: Manipular cadenas
« Respuesta #6 en: 27 Junio 2010, 23:47 pm »

Otra forma de poder saber la cantidad de caracteres de una cadena es usando la funcion strlen() de la libreria string.h que te menciono Daemon Freedom

Y con respecto a minisculas y mayusculas te dejo un codigo de ejemplo

Código:
#include <stdio.h>
#include <string.h>

int main( void )
{
    char min[] = "abcdefghijklmnopqrstuvwxyz";
    char may[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
    int i;

    for ( i = 0; i < strlen( min ); ++i )
    {
        if ( min[i] >= 97 && min[i] <= 122 )
            min[i] -= 32;
    }

    for ( i = 0; i < strlen( may ); ++i )
    {
        if ( may[i] >= 65 && may[i] <= 90 )
            may[i] += 32;
    }

    printf( "de minuscula a mayuscula: %s\n"
            "de mayuscula a minuscula: %s\n", min, may );

    return 0;
}

http://personal.telefonica.terra.es/web/oscarmartinez/_imatges/ascii.gif

Salu10.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Manipular resultados de ssh2_exec.
PHP
Sadam.sh 2 2,592 Último mensaje 8 Marzo 2011, 20:37 pm
por Sadam.sh
lo mas basico, como manipular cadenas
Programación C/C++
rod00x3 2 2,107 Último mensaje 7 Enero 2013, 20:57 pm
por Stakewinner00
Manipular servicios/controladores deshabilitados
Dudas Generales
asbu 4 2,385 Último mensaje 27 Enero 2014, 06:56 am
por asbu
Manipular programación de pantallas.
Electrónica
vitorr 1 4,648 Último mensaje 1 Febrero 2015, 02:18 am
por GARROTE
El negocio de manipular las valoraciones de 'apps': un fraude muy lucrativo
Noticias
wolfbcn 0 1,104 Último mensaje 8 Febrero 2015, 02:23 am
por wolfbcn
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines