Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Как правильно переписать определенные символы в массив в ходе цикла?

*_Катюффка_* Знаток (460), закрыт 7 лет назад
Язык си, подробнее в коде.
https://pastebin.com/GqC6PThW
Лучший ответ
Чебуратор Мыслитель (8449) 7 лет назад
Заведи отдельную переменную на массивы, strcpy_s(arr_2[var++], arr); strcpy_s(arr_2[var++], 'X');
Задача вообще не объяснена, что нужно сделать? Что за count? Цикл можно прооптимизировать, если в текущей итерации следующий символ равен текущему, то в последующей нет нужды проверять текущий с предыдущим... Для копирования последовательности символов можно заюзать memcpy, strcpy копирует целиком строку
*_Катюффка_*Знаток (460) 7 лет назад
Задача такова, что нужно считать все символы в массиве и переписать их в ином виде. Например первый массив "XXYYYGXX", во второй массив нужно прописать "2X3YG2X", то есть указать сколько раз символы повторились. так же в работе нужно использовать только указатели и только динамические массивы.
Для этого как я понимаю нужен второй массив. Count- подсчитывает количество повторений символов (2X- то есть count здесь это 2). А вообще, если честно, я очень запуталась в этом задании..
Чебуратор Мыслитель (8449) #include < stdio.h > #include < stdlib.h > #include < string.h > #define LENGTH 100 int main() { char * array = "XXXXXXXXXXYYYYYGXX"; char* new_array = (char*)malloc(LENGTH); int count = 1,index = 0; for(char* ptr = array;*ptr;++ptr) { if(*ptr == *(ptr+1)) { ++count; continue; } else if (count > 1) { itoa(count,new_array+index,10); index = (ptr+strlen(new_array)) - ptr; count = 1; } new_array[index++] = *ptr; } new_array[index] = '\0'; printf("%s",new_array); return 0; }
Остальные ответы
Лешка Лешкин Искусственный Интеллект (135140) 7 лет назад
Катюха, какого цикла? Менструального?
Похожие вопросы