如果my_array[50]
内有随机的大写字母,是否有任何方法可以找到它们并将它们切换为小写字母?我真的在寻找与实现无关的方法,因为它将成为跨平台的。该代码也将用于其他语言。
答案 0 :(得分:4)
C提供了tolower
函数,可将大写字母转换为小写字母,并使其他字符保持不变。它受当前语言环境的影响(根据您使用setlocale
函数设置的语言环境,它将使用不同的字母)。应该与unsigned char
个字符一起使用。
#include <ctype.h>
#include <stdlib.h>
/* Given length characters starting at p,
convert uppercase letters to lowercase.
*/
void ToLower(size_t length, unsigned char *p)
{
for (size_t i = 0; i < length; ++i)
p[i] = tolower(p[i]);
}
(对于“宽字符”,功能towctrans
提供了类似的操作。使用起来更加复杂。)