//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$
*/
'c 언어 > 중급과정' 카테고리의 다른 글
[카카오 코딩테스트] 자연수 자릿수의 합 구하기 (0) | 2019.10.30 |
---|---|
[카카오 코딩테스트] 다트 게임 (0) | 2019.10.30 |
pointer memory use instead of structure stack memory (0) | 2019.10.29 |
gcc -o sample sample.o -lm 시에 m의 의미는? (0) | 2019.10.29 |
[Tip] semop() 세마포어 값을 변경 (0) | 2019.10.29 |