рефераты конспекты курсовые дипломные лекции шпоры

Реферат Курсовая Конспект

ОБРОБКА ЛІТЕРНИХ РЯДКІВ

ОБРОБКА ЛІТЕРНИХ РЯДКІВ - раздел Философия, ПРОГРАМУВАННЯ   Роботу З Рядками Символів Забезпечують Стандартні Функції. Вс...

 

Роботу з рядками символів забезпечують стандартні функції. Всі вони описані у відповідних файлах з розширенням *.h. Розглянемо деякі найбільш вживані функції.

Функції перевірки і перетворенняописані в файлі ctype.h, вони такі:

-isalpha(c) – перевіряє чи символ с є буквою;

-isdigit(c) – перевіряє чи символ с є цифрою;

-islower(c) – перевіряє чи символ с є малою літерою;

-isprint(c) – перевіряє чи символ с можна видати на друк;

-isspace(c) – перевіряє чи символ с є пробільним символом (пробіл, табуляція або новий рядок);

-isupper(c) – перевіряє чи символ с є прописною буквою;

-isalnum(c) – перевіряє чи символ с є алфавітноцифровим (буква або цифра);

-isascii(c) – перевіряє чи символ с є кодом ASCII (0-127);

-iscntrl(c) – перевіряє чи символ с є керуючим символом;

-ispunct(c) – перевіряє чи символ с є знаком пунктуації;

-toupper(c) – перетворює символ c у прописну букву;

-tolower(c) – перетворює символ c у малу літеру;

 

Всі функції повертають число 1, тобто true, якщо результати перевірки виявилися успішними. Останні дві – перетворений символ.

Перетворення букви A з прописної у рядкову a подано у прикладі 3.1.

 

Приклад 3.1 – Перетворення букви A з великої на малу

 

# include <stdio.h>

# include <ctype.h>

main( )

{

char z, y = 'A';

z = tolower(y);

printf("y = %c z = %cn ",y, z);

}

 

y = A z = a

 

Перетворення символьних рядків на числа і навпаки. Іноді доцільно ввести рядок символів, а потім перетворити його на відповідне число. Зрозуміло, що перетворити на число можна не будь-які літери, а лише рядок, який складається з цифр. Для цього служать такі функції:

 

-atoi(a) – перетворення рядка a на ціле число;

-atof(a) – перетворення рядка a на дійсне число;

-itoa(i, s, d) – перетворення цілого числа i на рядок s. Параметр d визначає систему числення і, якщо вона десяткова, то d = 10.

 

Описані вони в файлі stdlib.h. Перші дві функції повертають результат перетворення, якщо воно було успішним, інакше – нуль.

Нижче подано приклад 3.2 перетворення двох рядків: 1234 і 12,3 на числа та цілого числа 18 – на рядок.

 

Приклад 3.2 – Символьно-числові перетворення

 

# include <stdio.h>

# include <stdlib.h>

main( )

{char s1[9] = "1234", s2[6] = "12.3", s3[3];

int k = 18, n;

float b;

n = atoi(s1); b = atof(s2);

itoa(k, s3, 10);

printf("n = %d b = %f s3 = %sn", n, b, s3);

getch( );

}

 

n = 1234 b = 12.30 s3 = 18

 

Функції, що працюють із рядками, описані в файлі string.h. Це, зокрема, такі:

 

-strlen(s) – повертає довжину, кількість літер рядка s;

-strcat(s1, s2) – додає рядок s1 в кінець рядка s2;

-strncat(s1, s2, n) – додає n літер рядка s1 в кінець рядка s2, повертає новоутворений рядок;

-strcmp(s1, s2) – порівнює вміст рядків s1 i s2. Результатом роботи функції є число, яке від’ємне, якщо коди літер рядка s2 менші за s1, додатнє, якщо більші, і дорівню нулю, якщо коди рівні;

-strcpy(s1, s2) – копіює рядок s2 в s1, повертає рядок s1;

-strdup(s) – дублює масив s, повертає точку входу в новий масив;

-strrev(s) – реверсує всі символи рядка s (змінює порядок розташування літер у рядку на протилежний), повертає новоутворений рядок;

-strchr(s, c) – перевіряє входження символа c в рядок s. Якщо символ не знайдений, то повертає NULL, інакше точку входу;

-strrchr(s, c) – повертає частину, решту рядка s, починаючи з літери c або NULL, якщо символ c не знайдений;

-strstr(s1, s2) – повертає входження рядка s2 в s1 або NULL, якщо входження не відбулося;

-strupr(s) – перетворює всі літери рядка s на великі, повертає новий рядок;

-strerror(i) – текст і-ї помилки, яка виникла під час обробки рядка.

 

Розглянемо приклад 3.3, де показано застосування декількох функцій.

 

Приклад 3.3 – Ілюстрація роботи рядкових функцій

 

# include<stdio.h>

# include<string.h>

int main(void)

{

char s1[5] = "ab", s2[3] = "cd";

char s3[5] = "abcd", s4[4] = "bcd";

char s5[9] = "student", c = 'd', s6[8] = "tude";

printf("1 s1+s2 = %sn", strcat(s1, s2));

printf("2 ds3 = %d ds2 = %dn", strlen(s3), strlen(s2));

printf("3 s1 = %sn", strcpy(s1, s2));

printf("4 s3 = %sn", strstr(s3, s4));

printf("5 chr = %s str = %sn", strchr(s5, c), strstr(s5, s6));

getch( );

return 0;

}

 

1 s1+s2 = abcd

2 ds3 = 4 ds2 = 2

3 s1 = cd

4 s3 = bcd

5 chr = dent str = tudent

 

Програма прикладу 3.3 видала такі п’ять рядків результатів:

 

1 – конкатенація рядків s1 і s2;

2 – довжини рядків s3 і s2;

3 – копіювання рядка s1 в s2;

4 – входження рядка s4 в s3;

5 – входження символа c в рядок s5 та рядка s6 в s5.

 

Перелік помилок, які виникають під час роботи з літерними функціями, можна прочитати за допомогою програми, поданої в прикладі 3.4.

 

Приклад 3.4 – Видача текстів помилок

 

# include<stdio.h> /* Тексти помилок при обробці рядків*/

# include<string.h>

main( )

{int i;

for(i = 1; ; i++)

{printf("num = %d err = %s", i, strerror(i));

if(i % 20 == 0) getch( );

}

}

 

Нижче показано декілька результатів роботи функції strerror( ).

 

num = 1 err = Invalid function number

num = 2 err = No such file or directory

num = 3 err = Path not found

num = 4 err = Too many open files

num = 5 err = Permission denied

num = 6 err = Bad file number

num = 7 err = Memory arena trashed

num = 8 err = Not enough memory

num = 9 err = Invalid memory block address

num = 10 err = Invalid environment

num = 11 err = Invalid format

num = 12 err = Invalid access code

 

– Конец работы –

Эта тема принадлежит разделу:

ПРОГРАМУВАННЯ

Івано Франківський національний технічний університет нафти і газу... В М Юрчишин Б В Клим В Б Кропивницька...

Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: ОБРОБКА ЛІТЕРНИХ РЯДКІВ

Что будем делать с полученным материалом:

Если этот материал оказался полезным ля Вас, Вы можете сохранить его на свою страничку в социальных сетях:

Все темы данного раздела:

СОРТУВАННЯ
  1.1 Методи сортування   Сортувати можна дані будь-якого базового типу, представлені в довільному вигляді, однак найчастіше сортувати потрібно масиви та зв’яза

ДАТА. ЧАС
4.1 Функції дати і часу   Стандартна бібліотека С містить набір функцій для обробки дати та часу, всі вони оголошені в файлі time.h. Це такі функції:  

Кількість машинного масла, тис. т.
  Рекомендації до створення структур:   1 – Регіон: код регіону, назва регіону; 2 – Область: код регіону, код області, назва о

Запаси: код родовища, видобувні запаси, дата представлення даних.
  Задача 2. Підготувати і занести в структури контрольні дані. Задача 3. Створити зв’язані списки із масивів структур. Задача 4. Виготовити звіт про розподіл кількос

Видобування: код родовища, дата представлення даних, видобуток нафти за добу.
  Задача 2. Підготувати і занести в структури контрольні дані. Задача 3. Створити зв’язані списки із масивів структур. Задача 4. Виготовити звіт про розподіл сумарно

ПЕРЕЛІК РЕКОМЕНДОВАНИХ ДЖЕРЕЛ
  1. Кочан, Стефан. Программирование на языке С, 3-е издание. : Пер. с англ.–М.: ООО “И.Д.Вильямс”, 2007 2. Хэзфилд Ричард, Кирби Лоуренс и др. Искусство программирования на

Хотите получать на электронную почту самые свежие новости?
Education Insider Sample
Подпишитесь на Нашу рассылку
Наша политика приватности обеспечивает 100% безопасность и анонимность Ваших E-Mail
Реклама
Соответствующий теме материал
  • Похожее
  • Популярное
  • Облако тегов
  • Здесь
  • Временно
  • Пусто
Теги