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
이렇게 출력이 입니다. 수정 부탁드립니다.


댓글 달기