//strstr로 해결이 안되는 부분에서는 strchr로

//strstr로 해결이 안되는 부분에서는 strchr로

//strstr로 해결이 안되는 부분에서는 strchr로

//strstr로 해결이 안되는 부분에서는 strchr로

//strstr로 해결이 안되는 부분에서는 strchr로

//strstr로 해결이 안되는 부분에서는 strchr로

 

#include <stdio.h>

#include <string.h>

 

#define MAX_ROW 100

#define MAX_COL 100

 

static int extract_strchr(char *str, char tmp[100][100]);

 

int main(void)

{

char *str = "||||||sdfsfsfsdfdsf||||sdffsdfdsfdsfds||||||||||||dd|ff||||||";

char tmp[MAX_ROW][MAX_COL];

 

int rc,ii;

 

    memset(tmp,0x00,sizeof(tmp));

rc = extract_strchr(str, tmp);

 

for(ii=0; ii<rc; ii++)

{

printf("[%.4d](%s)\n", ii, tmp[ii]);

}

return(0);

}

 

int extract_strchr(char *str, char tmp[MAX_ROW][MAX_COL])

{

char *d1, *d2;

int kk=0;

 

d1 = strchr(str, '|');

memcpy(tmp[kk++], str, d1 - str);

 

    for(;;)

{

d2 = strchr(d1+1, '|');

if(d2==NULL) break;

memcpy(tmp[kk++], d1+1, d2-d1-1);

 

if(kk >= MAX_ROW) break;

 

d1 = strchr(d2+1, '|');

if(d1==NULL) break;

memcpy(tmp[kk++], d2+1, d1-d2-1);

 

if(kk >= MAX_ROW) break;

}

return(kk);

}

 

/*결과

bash-3.1$ gcc -c 40.c

bash-3.1$ gcc -o 40 40.o

bash-3.1$ 40

[0000]()

[0001]()

[0002]()

[0003]()

[0004]()

[0005]()

[0006](sdfsfsfsdfdsf)

[0007]()

[0008]()

[0009]()

[0010](sdffsdfdsfdsfds)

[0011]()

[0012]()

[0013]()

[0014]()

[0015]()

[0016]()

[0017]()

[0018]()

[0019]()

[0020]()

[0021]()

[0022](dd)

[0023](ff)

[0024]()

[0025]()

[0026]()

[0027]()

[0028]()

bash-3.1$

*/

+ Recent posts