[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
0 意見:
張貼留言