Принятый ответ предыдущего вопроса имеет алгоритм для половины этого: он превращает "first"
в 1
. Чтобы перейти оттуда к "1st"
, сделайте что-то вроде:
suffixes = ["th", "st", "nd", "rd", ] + ["th"] * 16
suffixed_num = str(num) + suffixes[num % 100]
Это работает только для чисел 0-19.
Почему stdbool.h не рекомендуется?
blockquote>Это не так.
Вы указали следующее примечание:
Возможность определения и переопределения макросов bool, true и false является устаревшей функцией и может быть удалена в будущей версии.
blockquote>. Это означает, что следующий абзац может быть удален в будущее:
Приложение может не определять и затем переопределять макросы bool, true и false.
blockquote>Это не означает, что заголовок или его содержимое будет удалено.
В вашем вопросе есть несколько недоразумений:
<stdbool.h>
не будут затронуты этим.
<stdbool.h>
делать что-то другое, кроме определенияtrue
иfalse
в качестве макросов, эквивалентных0
и1
(например, определять их как макросы, которые расширяются до встроенных компиляторов__true
] и__false
- возможно, чтобы помочь компилятору создать более полезную диагностику). Такая обработка будет подорвана приложением, которое не определило эти макросы и переопределило их как 0 и 1. – supercat 13 July 2018 в 16:38<stdbool.h>
устарел .... Боюсь. Вероятно, это означает, что из-за существования заголовка<stdbool.h>
, задача определения макросов дляtrue
илиfalse
иbool
- это то, что устарело. – Luis Colorado 13 July 2018 в 16:51