Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Функция strtok в vs2005 
:(
    Опции темы
maksar
Дата 2.2.2006, 16:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Не могу понять почему в vs2005 не работает обыкновенный пример c strtok. Пример собирается, но когда доходит до выполнения фун strtok вылетает с исключением в strtok.c
Код

        for ( ; *str ; str++ )
                if ( map[*str >> 3] & (1 << (*str & 7)) ) {
  ==>                      *str++ = '\0';
                        break;
                }

Вот тут.
Вот пример:
Код

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

int main(){
    char *str = "(12 + 34) * 56";
    char *tkn = "+*()";
    char *ptr = str;
    printf("%s\n", str);
    ptr = strtok(str, tkn);
    printf("Лексемы этой строки: %s", ptr);
    while (ptr){
        if ((ptr = strtok(0, tkn)) != 0)
            printf (",%s", ptr);
    }
 return 0;
}

В turbo C все работает на ура(
PM MAIL   Вверх
Earnest
Дата 2.2.2006, 19:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5962
Регистрация: 17.6.2005
Где: Рязань

Репутация: 87
Всего: 183



Похоже, не нравится ей изменение строки...
Попробуй написать так:
char str[] = "(12 + 34) * 56";



--------------------
...
PM   Вверх
maksar
Дата 3.2.2006, 03:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



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


 




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


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

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