Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: explode / split  (Прочитано 4779 раз)
0 Пользователей и 1 Гость смотрят эту тему.
HOCOK
Гость
« : 22-05-2006 16:54 » 

я PHP програмер, и с С неочень дружу.. решил написать на С функс. explode ( www.php.net/explode )

Код:
#include <stdio.h>
#include <conio.h>
#include <string.h>

void * explode(char *by,char *str, int nr){
char *buff,*buff2;
char a[50][50];
int y = 0, from = 0,i,x,c;
sprintf(buff,"%s%s",str,by);
strcpy(str,buff);

c=strlen(str);

for(i=0; i<c; i++){
sprintf(buff,"%c",str[i]);

if(!strcmp(buff,by)){
for(x=from; x<i; x++){
sprintf(buff,"%c",str[x]);
sprintf(buff2,"%s%s",a[y],buff);
strcpy(a[y],buff2);
}
y++;
from = x+1;
}
}
return a[nr];
}


int main(void){
char str[30]="privet|kafffffk|dela";
clrscr();

printf("(%s)",explode("|",str,0));

getch();
return 0;
}


при вервом запуске пашет..
запускаеш дважды, он запоминает то что была перет этим запуском.. и так до безконечности..

Вопрос, почему?

Как исправить?
« Последнее редактирование: 22-05-2006 17:34 от RXL » Записан
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #1 : 22-05-2006 17:50 » 

HOCOK, см. ф-ию strtok()
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
HOCOK
Гость
« Ответ #2 : 22-05-2006 18:25 » 

о боже %) сенкс..
Записан
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #3 : 22-05-2006 19:02 » 

Только не забудь внимательно почитать описание - она работает итерационно и изменяет строку.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines