Студопедия
Новини освіти і науки:
МАРК РЕГНЕРУС ДОСЛІДЖЕННЯ: Наскільки відрізняються діти, які виросли в одностатевих союзах


РЕЗОЛЮЦІЯ: Громадського обговорення навчальної програми статевого виховання


ЧОМУ ФОНД ОЛЕНИ ПІНЧУК І МОЗ УКРАЇНИ ПРОПАГУЮТЬ "СЕКСУАЛЬНІ УРОКИ"


ЕКЗИСТЕНЦІЙНО-ПСИХОЛОГІЧНІ ОСНОВИ ПОРУШЕННЯ СТАТЕВОЇ ІДЕНТИЧНОСТІ ПІДЛІТКІВ


Батьківський, громадянський рух в Україні закликає МОН зупинити тотальну сексуалізацію дітей і підлітків


Відкрите звернення Міністру освіти й науки України - Гриневич Лілії Михайлівні


Представництво українського жіноцтва в ООН: низький рівень культури спілкування в соціальних мережах


Гендерна антидискримінаційна експертиза може зробити нас моральними рабами


ЛІВИЙ МАРКСИЗМ У НОВИХ ПІДРУЧНИКАХ ДЛЯ ШКОЛЯРІВ


ВІДКРИТА ЗАЯВА на підтримку позиції Ганни Турчинової та права кожної людини на свободу думки, світогляду та вираження поглядів



ЗАВДАННЯ ПО ОБРОБЦІ РЯДКІВ

Ввести символьний рядок і розділити його на частини фіксованої довжини. Вивести на екран отримані частини рядка "у стовпчик", тобто кожну частину з нового рядка екрана. Нехай у кожній частині рядка буде не більш 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

 




Переглядів: 388

<== попередня сторінка | наступна сторінка ==>
МЕТОДИЧНІ ВКАЗІВКИ | Варіант 4.

Не знайшли потрібну інформацію? Скористайтесь пошуком google:

  

© studopedia.com.ua При використанні або копіюванні матеріалів пряме посилання на сайт обов'язкове.


Генерація сторінки за: 0.014 сек.