Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.03.2011, 23:54   #1
papos
Пользователь
 
Регистрация: 20.09.2010
Сообщений: 37
По умолчанию Ошибка при работе с строками в Си

Есть кусок кода на языке Си
Код:
    char s[]="abccddf abcdeeef abcdefghyu";
    char copys[30];
    char newstr[30];
    char resstr[30];
    strcpy(copys,s);
    char* s1=malloc(30);
    int k,p;
    int sum=0;
    p=FindSpace(s)+1;
    printf("%s\n",s);
    printf("%d\n",p);
    while(p>0)
    {
        printf("s==%s\n",s);
        printf("p==%d\n",p);
        if (p==1) strcpy(s1,s);
        else s1=strtok(s, " ");
        printf("%s\n",s1);
        if (p!=1)
        {
            s1+=strlen(s1)+1;
            strcpy(s,s1);
        }
        p--;
    }
Этот кусок делит строку s на слова отдельные. FindSpaces - это моя функция, которая считает количество пробелов в строке, она работает правильно, можно ее вообще убрать и поставить константу. Так вот при работе вылазиет ошибка в консоли, непонятно почему, на последнем шаге, т.е. когда обрабатывается последнее слово. Подскажите пожалуйста, где ошибка может быть.
papos вне форума Ответить с цитированием
Старый 23.03.2011, 03:50   #2
onewho
Форумчанин
 
Регистрация: 29.09.2010
Сообщений: 636
По умолчанию

у меня это работает.
так попроще будет
Код:
char str[] = "qwerqer qer hqer h erh qe erhqerh";
int count=1;
char *p;

p=strtok(str," \n");

do {

printf("%d: %s\n",count++,p);

p=strtok(0," \n");

} while (p);
onewho вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка в работе со строками, язык С ПеПпИ Помощь студентам 1 18.11.2010 01:24
Ошибка при работе с процедурой Hant111 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 1 21.03.2010 20:10
Цикл do while при работе со строками. Lazio Помощь студентам 7 11.10.2009 16:11
Ошибка при работе с БД malevich БД в Delphi 8 25.11.2007 15:10