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