Как я могу изменить заглавные буквы на маленькие буквы и наоборот в строках, без использования строковых команд и кода acii - PullRequest
0 голосов
/ 12 апреля 2019

Мне нужно написать функцию, которая удаляет каждый символ из текста, который не является числом, заменяет первую букву каждого слова на заглавную, а остальные - на маленькие.

Проблема в том, что:

  • Я не могу использовать библиотеку ctype, stdlib и string
  • Я могу использовать только scanf, когда хочу ввести
  • Я не могу использовать оператор [], кроме объявления массива
  • Я не могу использовать цифры, кроме 0 и 1

Обычно это было бы легко, но с этими условиями я понятия не имею, как это сделать. Я новичок в строках, не будь резким :).

1 Ответ

2 голосов
/ 12 апреля 2019

Возможно, попробуйте сделать несколько макросов, подобных этому:

#define IS_UPPER(c) ( (c) >= 'A' && (c) <= 'Z' )
#define IS_LOWER(c) ( (c) >= 'a' && (c) <= 'z')
#define TO_UPPER(c) ( (c) -= ('a' - 'A'))
#define TO_LOWER(c) ( (c) += ('a' - 'A'))

#define IS_ALPHA(c) ( IS_UPPER(c) || IS_LOWER(c) )

И посмотри, сможешь ли ты заставить что-то работать

void homework(char * txt)
{
    while(*txt != NUL)
    {
        /* do some stuff */

        txt++;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...