МАРК РЕГНЕРУС ДОСЛІДЖЕННЯ: Наскільки відрізняються діти, які виросли в одностатевих союзах
РЕЗОЛЮЦІЯ: Громадського обговорення навчальної програми статевого виховання ЧОМУ ФОНД ОЛЕНИ ПІНЧУК І МОЗ УКРАЇНИ ПРОПАГУЮТЬ "СЕКСУАЛЬНІ УРОКИ" ЕКЗИСТЕНЦІЙНО-ПСИХОЛОГІЧНІ ОСНОВИ ПОРУШЕННЯ СТАТЕВОЇ ІДЕНТИЧНОСТІ ПІДЛІТКІВ Батьківський, громадянський рух в Україні закликає МОН зупинити тотальну сексуалізацію дітей і підлітків Відкрите звернення Міністру освіти й науки України - Гриневич Лілії Михайлівні Представництво українського жіноцтва в ООН: низький рівень культури спілкування в соціальних мережах Гендерна антидискримінаційна експертиза може зробити нас моральними рабами ЛІВИЙ МАРКСИЗМ У НОВИХ ПІДРУЧНИКАХ ДЛЯ ШКОЛЯРІВ ВІДКРИТА ЗАЯВА на підтримку позиції Ганни Турчинової та права кожної людини на свободу думки, світогляду та вираження поглядів Контакти
Тлумачний словник |
|
|||||||
ЗАВДАННЯ ПО ОБРОБЦІ РЯДКІВВвести символьний рядок і розділити його на частини фіксованої довжини. Вивести на екран отримані частини рядка "у стовпчик", тобто кожну частину з нового рядка екрана. Нехай у кожній частині рядка буде не більш 3 символів: //динамічні символьні масиви, покажчики і рядки #include <stdio. h> #include <string. h> void main() { int len_max, len=0; char*n;* input; int ks;//кількість "частин" рядка char**c;//покажчик на масив покажчиків in+n=0; in+j=0; in+i; printf("введіть максимальний елемент рядка:"); scanf("%d", & len_max); /* виділити пам'ять для рядка, що вводиться,*/ input=(char*)malloc(len_max); printf("\n уведи рядок:"); /*видалення символу '\n' із вхідного потоку, щоб він не став нульовим символом рядка, що вводиться,*/ get char(); /* читання рядка*/ while((*(input+len++)=get char());='\n'); len;//len-кількість уведених символів /* Додати ознака кінця рядка*/ *(input+len)='\0'; /* виділити пам'ять для введеного рядка */ n=(char *) malloc (len++); while(*(n+j++0=* input++);//інформацію з вхідного рядка /* видалення із пам'яті вихідного рядка */ free(input); ks =(len++)/3;//кількість частин с=(char**) calloc(ks, sizeof(char*)//void callosb (unsignedn,kn signed m) - виділення динамічної пам'яті на n елементів по m байт. /* Розподіл рядка на ks частин*/ for(j=0;j<ks;j++) { *(c+j)=(char*) malloc(u);//Пам'ять для частини for (i=0;(i<3&& *(h+n));i++) *(*cc +j) +i)=*(h+n++); *(*(c+j+i)='\0'; } /* видалення з пам'яті обробленого рядка*/ free(h); /* Висновок "частин" вихідного рядка*/ for (j=0; j<ks;j++) { printf ("\n%s", *(c_j)); } /* звільнити пам'ять від динамічних масивів*/ for ij=0;j<ks;j++) free989c=J00; free(c); } ПРИКЛАД ВИКОНАННЯ ПРОГРАМИ Вводимо максимальний розмір рядка:60 Введіть рядок: Приклад_до_лаб_раб_9 Приклад_до_лаб_раб_9 ВАРІАНТИ ЗАВДАНЬ РОБОТИ Варіант 1. Перевірити, чи є вираз, що складається тільки з прописних букв заданого рядка паліндромом (паліндром - слово або вираз, що читається зліва направо і з права на ліво однаково: «кабак», «нажал кабака баклажан»). Якщо так, то надрукувати отриманий паліндром. У противному випадку вивести рядок, що складається із символів вихідного рядка з видаленням прописних символів. Наприклад: Вихідний рядок: Результат: 1чкпаваfgк Кабак-паліндром BuRAtino utino-не паліндром Варіант 2. Задано рядок, що містить букви і цифри. Перетворіть цей рядок так, щоб спочатку в ньому було розташовано всі цифри, а потім - всі букви заданого рядка. Наприклад: ad2e7b5 2756adeb
Варіант 3. З клавіатури вводиться рядок. Виберіть з нього всі букви від А(а) до I(і) (рядкові перетворіть у прописні) і відсортуйте їх за абеткою: SHiROvKlfiOiBcbkel => BCEFIIIKLLV
|
||||||||
|