Строки

Символы и строки.


Этот листок состоит во многом из наиболее употребительных функций string.h, стандартной библиотеки языка C для работы со строками.
Обратите внимание на то, что в условии уже заданы прототипы (заголовки) этих функций. Следовать им обязательно.
Проверки корректности входных данных не требуется.


Задачи


1.

  1. int isDigit(char ch) возвращает значение утверждения ch является (десятичной) цифрой. .
  2. int isXDigit(char ch) возвращает значение утверждения ch является шестнадцатеричной цифрой.
  3. int isLwLetter(char ch) возвращает значение утверждения ch является строчной (латинской) буквой.
  4. int isUpLetter(char ch) возвращает значение утверждения ch является заглавной (латинской) буквой.
  5. int isLetter(char ch) возвращает значение утверждения ch является (латинской) буквой.
  6. int isOper(char ch) возвращает значение утверждения ch является знаком арифметической операции, т. е. одним из следующих: '+', '-', '*', '/', '%', '^'.

2.

  1. int strlen(const char *str) Возвращает длину строки str.
  2. char *strcpy(char *dst, const char *src) Копирует строку src в dst. Возвращает dst.
  3. char *strcat(char *dst, const char *src) Добавляет строку src к концу строки dst. Новое значение длины dst становится равным сумме длин src и прежнего значения dst. Возвращает dst.
  4. int strcmp(const char *str1, const char *str2) Возвращает какое-нибудь положительное значение, при str1 > str2; 0, при str1 = str2 и отрицательное значение, при str1 < str2.
  5. char *strlwr(char *str) Преобразует в str все заглавные буквы в соответствующие строчные. Остальные символы в строке не изменяются. Возвращает str.
  6. char *strupr(char *str) Преобразует в str все строчные буквы в соответствующие заглавные. Остальные символы в строке не изменяются. Возвращает str.
  7. char *strShift(char *str) Преобразует в str все строчные буквы в соответствующие заглавные и наоборот. Остальные символы в строке не изменяются. Возвращает str.
  8. char *upFirst(char *str) Преобразует в str все первые буквы слова в соответствующие заглавные. Остальные символы в строке не изменяются. Возвращает str.
  9. Написать функцию strSwap которая меняет местами две данные строки.

Будем говорить, что натуральное число n [в заданной системе счисления] представлено текстовой строчкой t, если символы строчки последовательно принимают значения цифр числа n [в заданной системе счисления].


Например, число 486910 может быть представлено текстовой строчкой "486910" или строчкой "019684".
Шестнадцатеричное число 4230F75C может быть представлено текстовой строчкой "4230F75C" или "C57F0324".


3.

  1. Написать функцию long strToUnsign(char *str), которая принимает строчку, состоящую только из цифр и преобразует ее в соответствующее целое неотрицательное число. Будем полагать, что заданная строка корректна и что это число умещается в типе long
  2. Написать функцию long revStrToUnsign(char *str) То же самое, только цифры в строке записаны в обратном порядке.
  3. Написать функцию void *strNext(char *sA) которая принимает число, представленное текстовой строчкой sA и преобразует ее так, что она представляет следующее число.
  4. Написать функцию void *strPrev(char *sA) которая принимает число, представленное текстовой строчкой sA и преобразует ее так, что она представляет предыдущее число.
  5. Написать функцию char *strAdd(char *sA, char *sB) которая принимает числа a и b, представленное текстовыми строчками sA и sB и возвращает строчку, представляющую их сумму.
  6. Написать функцию int strDCmp(char *sA, char *sB) которая принимает числа a и b, представленное текстовыми строчками sA и sB и возвращает знак их разности (аналогично функции strcmp).
  7. Написать функцию char *strSub(char *sA, char *sB) которая принимает числа a и b, представленное текстовыми строчками sA и sB и возвращает строчку, представляющую их разность, при условии что a >= b.