Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > strtok и указатель


Автор: bigturtle 19.8.2009, 12:07
В чем ошибка?
Код

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(void) {
    char *p;
    char *p1="Hello word; Hello word; Hello word; Hello word;";
    p=strtok(p1,";");
printf("%s",p1);
while(p!=NULL){
    p=strtok(NULL,";");
        if (p!=NULL) printf("|%s",p);
        
    }
    
    
    
    
    
    getchar();
    return EXIT_SUCCESS;
}


Автор: mes 19.8.2009, 12:28
Цитата(bigturtle @  19.8.2009,  11:07 Найти цитируемый пост)
    char *p1="Hello word; Hello word; Hello word; Hello word;";
    p=strtok(p1,";");

p1 в Вашем случае в реальности является указателем на константу  (и объявлять такой указатель желательно const char * чтоб самого себя избавить от лишних проблем).
Чтоб изменить строку, надо создать ее копию, например проинициализировав массив этой строкой:
Код

 char mas[] = "Hello word; Hello word; Hello word; Hello word;"

Цитата(bigturtle @  19.8.2009,  11:07 Найти цитируемый пост)
strtok(NULL,";");

думаю не помешает почитать документацию о strtok();

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)