2013年1月19日 星期六

[C][gdb][ddd] Split word into two segment. Using ddd to see the variable change


[C][gdb][ddd] Split word into two segment. Using ddd to see the variable change



#include <unistd.h>

#include <stdio.h>

#include <stdlib.h>

#include <string.h>



#define PATH "./test.txt"

#define BUFF_LEN 4096



int cut(char* src, char* dst1, char* dst2, char* s1)

{

    char *pch;

    int len;

    char tmp[BUFF_LEN]={0};

    

    pch=strstr(src, s1);

    if(!pch) return 0;

    len=pch-src;

    

    strncpy(tmp, src, len);

    strcpy(dst1, tmp);

    

    strncpy(tmp, src+len+1, strlen(src)-len);

    strcpy(dst2, tmp);

    

    return 1;

}





int main(void)

{

    char s1[BUFF_LEN]={0};

    char s2[BUFF_LEN]={0};



    FILE *fp;

    char *line = NULL;

    size_t len = 0;

    ssize_t read;

    fp = fopen("./test.txt", "r");

    if (fp == NULL)

        exit(1);

    while ((read = getline(&line, &len, fp)) != -1) {

        if(strcmp(line, "\n") == 0 )

            break;         

        if(!cut(line, s1, s2, ","))

        {



            printf("ERROR: can not cut =\n");

            break;

        }

        printf("s1=%s  s2=%s", s1,s2);

    }

    if (ferror(fp)) {

        /* handle error */

    }

    free(line);

    fclose(fp);

    return 0;

}



test.txt



one,two

three,four

five,six

 



Result :



s1=one  s2=two

s1=three  s2=four

s1=five  s2=six

 



Related Posts:

0 意見:

張貼留言