将包含大写字母的字符串转换为小写字母

时间:2012-04-04 23:42:14

标签: c ascii

我需要能够在字符串中转换大小写,以便"Hello"变为"hello"。最终,我需要对它们进行比较。

我将如何转换:

char *string = "HEllO";

到字符串"hello"

2 个答案:

答案 0 :(得分:3)

首先,您的字符串未正确声明,它应该是:

char *string = "Hello";

现在,要转换为小写,请尝试以下方法:

char *lowercase(const char *str)
{
    int length = strlen(str);
    char *dup = malloc(length + 1);
    strcpy(dup, str);

    for (int i = 0; i < length; i++)
    {
         dup[i] = tolower(dup[i]);
    }

    return dup; // remember to free when done!
}

答案 1 :(得分:2)

只需执行此内联。

   char string[] = "Hello";
   char * ptr;

   for (ptr = string; *ptr != '\0'; ++ptr)
   {
       *ptr = tolower(*ptr);
   }