Как я могу преобразовать смешанную строку случая в строчную строку в C?
Он находится в стандартной библиотеке, и это наиболее простой способ, который я могу найти для реализации такой функции. Так что да, просто переберите строку и преобразуйте каждый символ в нижний регистр.
Что-то тривиальное вроде этого:
#include <ctype.h>
for(int i = 0; str[i]; i++){
str[i] = tolower(str[i]);
}
или, если вы предпочитаете одинарные вкладыши, вы можете использовать этот Дж. Ф. Себастьяна:
for ( ; *p; ++p) *p = tolower(*p);
Вы имеете дело только со строками ASCII и у вас нет проблем с локалью? Тогда да, это был бы хороший способ сделать это.
преобразование в нижний регистр эквивалентно увеличению бита 0x60:
for(char *p = pstr;*p;++p) *p=*p>0x40&&*p<0x5b?*p|0x60:*p;
(для латинской кодовой страницы, конечно)