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