%%(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**//.


       


----
адрес оригинала: ((/OnerXaum/Строки))