Не могу никак вникнуть что ей нужно, уже стал валить на компилятор. Из строки нужно выдернуть три массива символов, но вот беда первый цикл нормально проходит, на втором счетчик увеличивается но строка не копируется. Собственно сама программа: Код (Text): #include <stdio.h> #include <string.h> int main(void) { char ip[35] = "ip=192.168.0.1&low=0&high=80"; char data[35]; char data1[35]; int i; memset(data, 0, sizeof(data)); for(i = 0; ip[i+3] != '&'; i++) data[i] = ip[i+3]; i++; memset(data, 0, sizeof(data)); for(i; ip[i+7] != '&'; i++) data1[i] = ip[i+7]; return 0; } Компилятор Pelles C 6.00 Win2000
Мне кажется, что строка копируется, просто ты не туда смотришь. И наводит меня на такие подозрения обнуление массива data, после того как этот массив заполняется чем-то в первом цикле.
Ну да я его намерено обнуляю после первого цикла, то что не копируется это точно. я бы протестировал на другом компиляторе просто под рукой нет.
Код (Text): #include <stdio.h> #include <string.h> int main(void) { char ip[35] = "ip=192.168.0.1&low=0&high=80"; char data[35]; char data1[35]; int i; int u =0; memset(data, 0, sizeof(data)); for(i = 0; ip[i+3] != '&'; i++) { data[i] = ip[i+3]; } i++; memset(data, 0, sizeof(data)); for(i; ip[i+7] != '&'; i++) { data1[u] = ip[i+7]; } return 0; } вот так работает. всех благодарю за поддержку!
vadak А во втором варианте нужно как бэ увеличивать значение u, не? Иначе скопируется только последний символ от low=xxxx.