The UNIX and Linux Forums  

Go Back   В UNIX и Linux Форумы > Топ форумы > Программирования высокого уровня
.
Google unix.com



Программирования высокого уровня Почтовые вопросы о C, C + +, Java, SQL и других языках программирования здесь.

Подробнее UNIX и Linux Темы форума можно найти полезные
Нить Резьба для начинающих Форум Ответы Последнее сообщение
Программа для отслеживания выполнения другой программы jiten_hegde Программирования высокого уровня 3 08-19-2008 06:26 AM
strtok эквивалент в Perl Jisha Shell программирование и сценарии 1 05-06-2008 04:38 AM
Regardign strtok () производства руководство 2-D строка массива SankarV Программирования высокого уровня 3 04-28-2008 10:48 AM
Strtok функции .... Tanvirk Linux 3 01-24-2008 10:16 AM
лучше, чем strtok? Энни Программирования высокого уровня 7 10-05-2005 03:01 PM

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered By Powered by Google
 
LinkBack Резьба Инструменты Искать в этом Thread Оценить Thread Режимы дисплея
Old 10-04-2008
sathishkmrv sathishkmrv is offline
Зарегистрированный пользователь
  
 

Регистрация: Sep 2007
Сообщений: 6
Как использовать strtok дважды в одной и той же программе?

Код:
       string str1(" 1 2 3 4 512543 ");
                 string str2;
                 if(str2.empty())
                        str2=str1;
                cout << "str2:" <<str2 <<endl;
                p1=strtok((char *)str1.c_str()," ");
                while(p1)
                {
                        v1.push_back(atoi(p1));
                cout << "val of p1 " << p1 << endl;
                 p1=strtok(NULL," ");
                }
                cout << "size of v1 " << v1.size() <<endl;
                p2=strtok((char *)str2.c_str()," ");
                cout << "str2:" <<str2 <<endl;
                while(p2)
                {
                        v2.push_back(atoi(p2));
                        cout << "val of p2 " << p2 <<endl;
                        p2=strtok(NULL," ");
                }

                cout << "size of v2" << v2.size() <<endl;
Я получаю следующее O / p.

Код:
str2: 1 2 3 4 512543 
val of p1 1
val of p1 2
val of p1 3
val of p1 4
val of p1 512543
size of v1 5
str2: 1234512543
val of p2 1
after tok p2  
size of v21
Я хочу str2 также будет tokenized. Однако после достижения strtok NULL как только она вернется только NULL указателя каждый раз, когда он, используя доступ к NULL.

Как я могу tokenize str2 сейчас?

Спасибо
Old 10-04-2008
грозный redoubtable is offline
Зарегистрированный пользователь
  
 

Регистрация: август 2008
Место проведения: Португалия
Сообщений: 242
Я не понимаю, о необходимости использования strtok () для Вашей проблемы. Во всяком случае, ответ на этот вопрос только по всей пособие для strtok (3):
Цитата:
ОШИБКИ
Старайтесь не использовать эти функции. Если использовать их, к сведению, что:

Эти функции, изменить их первый аргумент.

Эти функции не могут использоваться на постоянной струны.

Личность в определении характера теряется.

В strtok () использует функцию статического буфера при разборе, так что это не нить безопасности. Использование strtok_r (), если этот вопрос к вам.
Чтобы сделать Вашу работу кода, вы можете обмануть компилятор таким образом:
Код:
// ...
       string str1(" 1 2 3 4 512543 ");
                 string str2;
                 if(str2.empty())
                 {
                        str2=str1;
                        str2.insert(0, ""); // now, you tell me why this apparently solves your problem!
                 }
                cout << "str2:" <<str2 <<endl;
                p1=strtok((char *)str1.c_str()," ");
// ...
Old 10-04-2008
sathishkmrv sathishkmrv is offline
Зарегистрированный пользователь
  
 

Регистрация: Sep 2007
Сообщений: 6
Как использовать strtok дважды в одной и той же программе?

Да. Он работает!!!
Но каким образом включить
Код:
str2.insert(0, "");
решить эту проблему?
В manpages также говорят о том, что она не рекомендуется для использования.
Old 10-07-2008
Saurabh78 Saurabh78 is offline
Зарегистрированный пользователь
  
 

Регистрация: Июнь 2004
Сообщений: 40
лучше использовать strtok_r
Closed Thread

Закладки

Резьба Инструменты Искать в этом Thread
Искать в этом Thread:

Расширенный поиск
Режимы дисплея Оценить эту ветку
Оценить эту ветку:

Отправка Правила
Вы не может Начать новую нитей
Вы не может Почтовые ответы
Вы не может Почтовые вложения
Вы не может Редактировать Ваши сообщения

BB код быть На
Смайлики являемся На
[IMG] код На
HTML-код Вне
Trackbacks являемся На
Pingbacks являемся На
Refbacks являемся На




Часовой пояс GMT -4. Текущее время 05:59 AM.


Powered By: Справка, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Язык Переводы на питание от .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
В UNIX и Linux форумы Содержание Copyright © 1993-2009. Все права Reserved.Ad управления по RedTyger

Содержание соответствующие URL-адреса в vBSEO 3.2.0