Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> проблемы с strtok 
:(
    Опции темы
admsasha
Дата 8.6.2005, 11:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 763
Регистрация: 28.1.2005

Репутация: нет
Всего: 6



вот код
Код

int main()
{
    char s[255];
    char param1[1024];
    char param2[5][1024];

    strcpy(s,"5434::4::2::X::1::X::1::");

    strtok(s,"::");
    strcpy(param1,strtok(NULL,"::"));
    printf("param1=[%s]\n",param1);
    strcpy(param2[1],strtok(NULL,"::"));
    strcpy(param2[2],strtok(NULL,"::"));
    strcpy(param2[3],strtok(NULL,"::"));
    strcpy(param2[4],strtok(NULL,"::"));
    strcpy(param2[5],strtok(NULL,"::"));

    printf("param1=[%s]\n",param1);

}


вывод
Код

param1=[4]
param1=[1]


Почему вывод param1 отличается ??, я же нечего с ним не делаю больше ?

PM MAIL WWW ICQ Jabber   Вверх
Alastis
Дата 8.6.2005, 11:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 251
Регистрация: 15.11.2004
Где: Казахстан, Астана

Репутация: 4
Всего: 10



у меня выдает:
Код

param1=[4]
param1=[4]

а еще вот здесь ошибка:
Код

strcpy(param2[5],strtok(NULL,"::")); // нумерация в массиве начинается с нуля!



--------------------
Прости, что я говорю, когда ты меня перебиваешь.
PM MAIL WWW ICQ   Вверх
admsasha
Дата 8.6.2005, 11:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 763
Регистрация: 28.1.2005

Репутация: нет
Всего: 6



Цитата(Alastis @ 8.6.2005, 18:43)

а еще вот здесь ошибка:
strcpy(param2[5],strtok(NULL,"::")); // нумерация в массиве начинается с нуля!


char s[255];
разве это не от 0 до 255 ???
PM MAIL WWW ICQ Jabber   Вверх
chaos
Дата 8.6.2005, 12:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Серийный программист
****


Профиль
Группа: Завсегдатай
Сообщений: 2979
Регистрация: 7.7.2004
Где: Екатеринбург

Репутация: 6
Всего: 44



Цитата(admsasha @ 8.6.2005, 11:53)
char s[255];
разве это не от 0 до 255 ???

это от 0 до 254

и вот тебе пример рабочей программы из msdn
Код

#include <string.h>
#include <stdio.h>

char string[] = "A string\tof ,,tokens\nand some  more tokens";
char seps[]   = " ,\t\n";
char *token;

void main( void )
{
   printf( "%s\n\nTokens:\n", string );
   /* Establish string and get the first token: */
   token = strtok( string, seps );
   while( token != NULL )
   {
      /* While there are tokens in "string" */
      printf( " %s\n", token );
      /* Get next token: */
      token = strtok( NULL, seps );
   }
}


PM WWW   Вверх
pablo
Дата 9.6.2005, 13:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 320
Регистрация: 12.2.2005
Где: Вильнюс, Литва

Репутация: 4
Всего: 6



Цитата
char s[255];
разве это не от 0 до 255 ???


Это то так, но проижодит ссылка на элемент которого нет, это может вызвать непредсказуемый результат.
В данном случае это param2[5]

До исправления вывод такой:
Цитата
param1=[4]
param1=[1]


После вывод такой:
Цитата
param1=[4]
param1=[4]



--------------------
Первый блин всегда похож на сферу, иногда бывает и куб.
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0437 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.