是否可以找到大写字母并将其替换为小写?

时间:2019-07-12 23:28:51

标签: c regex

如果my_array[50]内有随机的大写字母,是否有任何方法可以找到它们并将它们切换为小写字母?我真的在寻找与实现无关的方法,因为它将成为跨平台的。该代码也将用于其他语言。

1 个答案:

答案 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提供了类似的操作。使用起来更加复杂。)