如何在不使用字符串命令和 acii 代码的情况下将大写字母更改为小写字母,反之亦然



我必须编写一个函数,从文本中删除每个不是数字的字符,将每个单词的首字母更改为大写字母,并将其余字母更改为小写字母。

问题是:

  • 我不能使用 ctype、stdlib 和字符串库
  • 我想输入时我只能使用 scanf
  • 除了数组声明之外,我不能使用 [] 运算符
  • 除了 0 和 1 之外,我不能使用数字

通常这很容易,但在这些条件下,我不知道该怎么做。我是刚接触弦的,不要苛刻:)。

也许尝试制作一些这样的宏:

#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++;
    }
}

相关内容

最新更新