Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Завдання по обробці рядків

Читайте также:
  1. Варіанти завдання вихідного параметру виконавчого механізму виходу
  2. Визначити завдання бухгалтерського обліку.
  3. Виконавські завдання освоєння творів великої форми.
  4. Додаткове завдання.
  5. Домашнє завдання
  6. Домашнє завдання
  7. Домашнє завдання

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

 


Дата добавления: 2015-07-20; просмотров: 61 | Нарушение авторских прав


Читайте в этой же книге: Завдання 2. | ВАРІАНТИ ЗАВДАНЬ РОБОТИ | Обмінне сортування | Інші методи сортування | ВАРІАНТИ ЗАВДАНЬ РОБОТИ | ТЕОРЕТИЧНА ЧАСТИНА | У двовимірні та навпаки | ВАРІАНТИ ЗАВДАНЬ РОБОТИ | Зв’язок між покажчиками та масивами | Покажчики на багатовимірні масиви. |
<== предыдущая страница | следующая страница ==>
Масиви покажчиків| Директиви препроцесора.

mybiblioteka.su - 2015-2024 год. (0.008 сек.)