c언어 '=' 기준으로 문자열을 자르는 방법을 알고 싶습니다.
파일로 두개의 문장을 받습니다.
1번 a=x+y
2번 b=z+1
이라는 식이 있으면 두개의 배열로 output[]배열에 {a},{b}을 널고 input배열에 {x,y},{z}넣으려고 하는데
'='왔을때 앞에 있는 것은 output배열에 저장하고 '='다음것은 input 배열에 넣는것을 어떻게 해야 할까요?
출력이
No. input Output
1. x,y a
2. z b
이렇게 입력을 파일로 받는것을 출력하는 하는것입니다.
여기에 제가 한 소스를 드리게 습니다.
#include "stdio.h"
#include "string.h"
#define TOKEN_LEN 10
#define MAX_LINES 100
void main()
{
FILE *fp;
char line[512];
char Temp[MAX_LINES*3][ TOKEN_LEN];
//char Temp2[MAX_LINES*3][ TOKEN_LEN];
char *pstr;
int i=0, count;
fp=fopen( "number.txt","r");
if(fp == NULL)
{
printf("file opening error\n");
return;
}
while( fgets(line,sizeof(line),fp) )
{
// 개행문자만 있는 라인은 처리하지 아니함
if( strcmp( line, "\n" )==0 )
continue;
pstr=strtok(line,"=");
while(pstr !=NULL)
{
if(pstr)
strcpy( Temp[i], pstr );
printf("%s", Temp[i++]);
pstr=strtok( NULL, "=");
}
}
count = i;
printf( " output input\n");
for( i = 0; i < count; i++ )
printf( " No.%s", Temp[i] );
printf( "\n");
fclose(fp);
}
이것을 출력하면
1. a 2. 3
3. b 4. 4
이렇게 출력이 입니다. 수정 부탁드립니다.
댓글 달기