|
Программист-прагматик. Путь от подмастерья к мастеруНе принимая во внимание потоки, предположим, что вы собираетесь использовать Strtok для одновременного синтаксического анализа двух отдельных строк: char buf1[BUFSIZ]; char buf2[BUFSIZ]; char *p, *q; strcpy(bufl, "это тестовая программа"); strcpy(buf2, "которая не будет работать"); р = strtck(buf1," "); q = strtok(buf2," "); while (p && q) { printf("%s %s\n", p, q); p = strtok(NULL, " "); q = strtok(NULL, " "); } Представленная программа работать не будет: существует неявное состояние, сохраняющееся в strtok между запросами. Вам придется использовать Strtok одновременно только с одним буфером. Конструкция синтаксического анализатора строк на языке Java будет отличаться от указанной выше. Она должна быть поточно-ориентированной и представлять непротиворечивое состояние. StringTokenizer st1 = new StringTokenizer("this is a test"); StrJngTokenlzer st2 = new StringTokenizer("this test will work"); while (st1.hasMoreTokens() && st2.hasMoreTokens()) { System.out.println(st1.nextToken()); System.out.println(st2.nextToken()); } Программа StringTokenizer обладает более четким и простым в сопровождении интерфейсом ...» |
Код для вставки книги в блог HTML
phpBB
текст
|
|