• Miércoles 15 de Mayo de 2024, 01:17

Autor Tema:  Por que no me funciona??  (Leído 894 veces)

alex1510

  • Miembro activo
  • **
  • Mensajes: 35
    • Ver Perfil
Por que no me funciona??
« en: Miércoles 28 de Octubre de 2009, 14:17 »
0
Hola buenas.
Tengo el siguiente código que lo que quiero es que me divida la frase en palabras, y si en la frase encuentra cierta palabra, pues entre en un case. Por ejemplo, si encuentra PARTNUMBER, que me cree una variable con el nombre PARTNUMBER y le asigne el valor F551-82720-000.Gracias

#include <stdio.h>
#include <string.h>



int main()
{
    char cadena[]= "2009.04.17 15:14:01 PARTNUMBER F551-82720-000";
    char *ptrToken;
   
    printf("%sn%snn%sn", "La cadena a dividir en tokens es : ", cadena,
                              "Los tokens son: ");
   
    ptrToken=strtok(cadena, " " );
   
    while (ptrToken !=NULL) {
          printf( "%sn", ptrToken);
                  switch (ptrToken)
                  {
                         case 'PARTNUMBER' //Me dice que ptrToken en muy largo, y si hago ptrToken=palabra, y el switch con palabra no sale
                         
          ptrToken = strtok(NULL, " ");
    }
             
    system("PAUSE");
    return 0;    
}

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Por que no me funciona??
« Respuesta #1 en: Miércoles 28 de Octubre de 2009, 14:47 »
0
switch solo trabaja con numeros enteros (un caracter es un numero, 4 caracteres son lo maximo que puede representar un entero en 32 bits - uno por cada byte -).

http://msdn.microsoft.com/en-us/library ... 80%29.aspx

Mejor usa strcmp (cuidado que es case sensitive).

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.