텍스트 줄의 구문 분석에 도움이 필요합니다. 파싱되는 텍스트 줄은 사용자 입력입니다.은 문자열 파싱에 도움이 필요합니다.
파이프가있는 것을 구문 분석하려고합니다.
예 : hello world | one two
파이프가 ArgList에 들어가기 전에 단어를 얻을 수 있습니다. 그러나 ArgList2에 파이프 이후에 단어를 얻는 방법을 알아낼 수 없습니다. 파이프 symobol은 아무 곳에 나 저장할 필요가 없습니다.
기본적으로 어떻게해야합니까?
int main(void)
{
char *ArgList[MAX_ARG_LENGTH];
char *ArgList2[MAX_ARG_LENGTH];
char buf[MAX_BUF_LENGTH];
int i = 0
printf("> ");
if(!fgets(str, MAX_BUF_LENGTH, stdin))
perror("fgets error");
ArgList[i] = strtok(bufstr, " \n");
while(ArgList[i] != NULL)
{
printf("%s", ArgList[i]);
i++;
ArgList[i] = strtok(NULL, " \n");
}
return 0;
}
어떤 제안
ArgList[0] = hello
ArgList[1] = world
ArgList2[0] = one
ArgList2[1] = two
주시면 감사하겠습니다. 먼저 전체 사용자 입력 문자열을 ArgList로 토큰 화 한 다음 파이프 기호 다음의 모든 항목을 ArgList2로 이동해야합니까?
이 문제를 해결하는 가장 좋은 방법은 무엇입니까?
이 코드를 실행하면 어떻게됩니까? –