SoloCodigo

Programación General => C/C++ => Mensaje iniciado por: alex1510 en Miércoles 28 de Octubre de 2009, 14:17

Título: Por que no me funciona??
Publicado por: alex1510 en Miércoles 28 de Octubre de 2009, 14:17
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;    
}
Título: Re: Por que no me funciona??
Publicado por: Eternal Idol en Miércoles 28 de Octubre de 2009, 14:47
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 (http://msdn.microsoft.com/en-us/library/k0t5wee3%28VS.80%29.aspx" onclick="window.open(this.href);return false;)

Mejor usa strcmp (cuidado que es case sensitive).