Results 1 to 4 of 4
  1. #1

    Question Help: split in C


    Hi sa tanan...

    Mangayo ko ug tabang ninyo ani nga problema sa C.

    Naa ko'y: char data[] = "A:1;A:2;A:3;";

    Ang ako'ng gusto kay ako na split by ;(semicolon) dayon by colon)..

    Ako'ng gigamit kay strtok nga method.. ang ako'ng problema kay kausa ra ko makasplit sa semicolon ra nya di na ko kahibaw ug unsaon nako pagsplit sa colon.

    Mao ni ang ako'ng code:

    Code:
      char data[] = "A:1;A:2;A:3;";
      printf ("DATA: %s \n\n", data);
      
      char delims[] = ";";
      char *result = NULL;
    
      result = strtok (data, delims);
    
      while (result != NULL)
      {
       printf ("%s \n", result);
       result = strtok (NULL, delims);
      }
    Ang output ana kay:

    A:1
    A:2
    A:3


    Salamat...

  2. #2
    try to include ":" in your delims --> delims[] = ";:";
    wala nko na try na pa run bacin d i sakto

  3. #3
    sakto answer ni @josephG... just add ":".

  4. #4
    OK mga bai.. thankz ninyo..

    Ang ako man jud buhaton kay ingon ani:

    naa ko'y struct:

    struct A
    {
    char A1[10];
    char A2[10];
    char A3[10];
    };

    nya based sa ani nga data "A1:1;A2:2;A3:3;"
    gusto nako nga:
    A.A1 = 1
    A.A2 = 2
    A.A3 = 3

    So karon, ang akong buhaton kay akong isplit using delims ";:"...
    so ang mahitabo sa akong loop kay:

    A1
    1
    A2
    2
    A3
    3

    Ang ako nalang buhaton kay naa ko'y flag sa tulo: A1Flag, A2Flag, ug A3Flag...

    Gi-ing ani nako:
    Code:
       #include <stdio.h>
     #include <stdlib.h>
     #include <string.h>
     
     struct A 
     {
      char A1[10];
      char A2[10];
      char A3[10];
     };
     
    int main()
    {
      char data[] = "A1:1;A2:2;A3:3";
      char delims[] = ":;";
      char *result = NULL;
      result = strtok (data, delims);
      
      struct A TheA;
    
      int A1Flag = 0;
      int A2Flag = 0;
      int A3Flag = 0;
    
      while (result != NULL)
      {
          if (A1Flag == 1)
       {
        strcpy(TheA.A1, result);
        A1Flag = 0;
       }
       else if (A2Flag == 1)
       {
        strcpy(TheA.A2, result);
        A2Flag = 0; 
       }
       else if (A3Flag == 1)
       {
        strcpy(TheA.A3, result);
        A3Flag = 0; 
       }
    
       if(strcmp(result, "A1") == 0)
        A1Flag = 1;
       else if(strcmp(result, "A2") == 0)
         A2Flag = 1;
       else if(strcmp(result, "A3") ==0)
        A3Flag = 1;
    	
       result = strtok (NULL, delims);
      }
      
      printf ("A1 = %s\n", TheA.A1);
      printf ("A2 = %s\n", TheA.A2);
      printf ("A3 = %s\n", TheA.A3);
    }
    Ang Output is like this:
    A1 = 1
    A2 = 2
    A3 = 3


    It's working fine na.. Tinamban lang...hehehe.. Basin naa mo nindot idea diha, share lang ninyo.. Salamat...

  5.    Advertisement

Similar Threads

 
  1. HELP: Working in Advertising Company?
    By 4U in forum Business, Finance & Economics Discussions
    Replies: 3
    Last Post: 11-24-2008, 10:31 PM
  2. please help me in this" vista os for internet cafe ok lang ba?
    By EnterBEN in forum Software & Games (Old)
    Replies: 46
    Last Post: 01-21-2008, 03:29 PM
  3. HELP! Graphics in Borland C/C++ Compiler dili na mo work!
    By brodpoks in forum Software & Games (Old)
    Replies: 0
    Last Post: 06-01-2007, 05:14 PM
  4. help tab in browser
    By hybrid_X in forum Programming
    Replies: 2
    Last Post: 10-18-2006, 07:35 PM
  5. Please help me in martial arts.
    By Chalil in forum Sports & Recreation
    Replies: 11
    Last Post: 09-20-2006, 10:52 PM

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
about us
We are the first Cebu Online Media.

iSTORYA.NET is Cebu's Biggest, Southern Philippines' Most Active, and the Philippines' Strongest Online Community!
follow us
#top