Как делают меня нижний регистр строка в C?

Как я могу преобразовать смешанную строку случая в строчную строку в C?

94
задан Evan Carroll 29 January 2019 в 22:30
поделиться

3 ответа

Он находится в стандартной библиотеке, и это наиболее простой способ, который я могу найти для реализации такой функции. Так что да, просто переберите строку и преобразуйте каждый символ в нижний регистр.

Что-то тривиальное вроде этого:

#include <ctype.h>

for(int i = 0; str[i]; i++){
  str[i] = tolower(str[i]);
}

или, если вы предпочитаете одинарные вкладыши, вы можете использовать этот Дж. Ф. Себастьяна:

for ( ; *p; ++p) *p = tolower(*p);
139
ответ дан 24 November 2019 в 06:07
поделиться

Вы имеете дело только со строками ASCII и у вас нет проблем с локалью? Тогда да, это был бы хороший способ сделать это.

1
ответ дан 24 November 2019 в 06:07
поделиться

преобразование в нижний регистр эквивалентно увеличению бита 0x60:

for(char *p = pstr;*p;++p) *p=*p>0x40&&*p<0x5b?*p|0x60:*p;

(для латинской кодовой страницы, конечно)

7
ответ дан 24 November 2019 в 06:07
поделиться
Другие вопросы по тегам:

Похожие вопросы: