Строки
Символы и строки.
Этот листок состоит во многом из наиболее употребительных функций string.h, стандартной библиотеки языка C для работы со строками.
Обратите внимание на то, что в условии уже заданы прототипы (заголовки) этих функций. Следовать им обязательно.
Проверки корректности входных данных не требуется.
Задачи
1.
- int isDigit(char ch) возвращает значение утверждения ch является (десятичной) цифрой. .
- int isXDigit(char ch) возвращает значение утверждения ch является шестнадцатеричной цифрой.
- int isLwLetter(char ch) возвращает значение утверждения ch является строчной (латинской) буквой.
- int isUpLetter(char ch) возвращает значение утверждения ch является заглавной (латинской) буквой.
- int isLetter(char ch) возвращает значение утверждения ch является (латинской) буквой.
- int isOper(char ch) возвращает значение утверждения ch является знаком арифметической операции, т. е. одним из следующих: '+', '-', '*', '/', '%', '^'.
2.
- int strlen(const char *str) Возвращает длину строки str.
- char *strcpy(char *dst, const char *src) Копирует строку src в dst. Возвращает dst.
- char *strcat(char *dst, const char *src) Добавляет строку src к концу строки dst. Новое значение длины dst становится равным сумме длин src и прежнего значения dst. Возвращает dst.
- int strcmp(const char *str1, const char *str2) Возвращает какое-нибудь положительное значение, при str1 > str2; 0, при str1 = str2 и отрицательное значение, при str1 < str2.
- char *strlwr(char *str) Преобразует в str все заглавные буквы в соответствующие строчные. Остальные символы в строке не изменяются. Возвращает str.
- char *strupr(char *str) Преобразует в str все строчные буквы в соответствующие заглавные. Остальные символы в строке не изменяются. Возвращает str.
- char *strShift(char *str) Преобразует в str все строчные буквы в соответствующие заглавные и наоборот. Остальные символы в строке не изменяются. Возвращает str.
- char *upFirst(char *str) Преобразует в str все первые буквы слова в соответствующие заглавные. Остальные символы в строке не изменяются. Возвращает str.
- Написать функцию strSwap которая меняет местами две данные строки.
Будем говорить, что натуральное число n [в заданной системе счисления] представлено текстовой строчкой t, если символы строчки последовательно принимают значения цифр числа n [в заданной системе счисления].
Например, число 486910 может быть представлено текстовой строчкой "486910" или строчкой "019684".
Шестнадцатеричное число 4230F75C может быть представлено текстовой строчкой "4230F75C" или "C57F0324".
3.
- Написать функцию long strToUnsign(char *str), которая принимает строчку, состоящую только из цифр и преобразует ее в соответствующее целое неотрицательное число. Будем полагать, что заданная строка корректна и что это число умещается в типе long
- Написать функцию long revStrToUnsign(char *str) То же самое, только цифры в строке записаны в обратном порядке.
- Написать функцию void *strNext(char *sA) которая принимает число, представленное текстовой строчкой sA и преобразует ее так, что она представляет следующее число.
- Написать функцию void *strPrev(char *sA) которая принимает число, представленное текстовой строчкой sA и преобразует ее так, что она представляет предыдущее число.
- Написать функцию char *strAdd(char *sA, char *sB) которая принимает числа a и b, представленное текстовыми строчками sA и sB и возвращает строчку, представляющую их сумму.
- Написать функцию int strDCmp(char *sA, char *sB) которая принимает числа a и b, представленное текстовыми строчками sA и sB и возвращает знак их разности (аналогично функции strcmp).
- Написать функцию char *strSub(char *sA, char *sB) которая принимает числа a и b, представленное текстовыми строчками sA и sB и возвращает строчку, представляющую их разность, при условии что a >= b.