如何在不修改 C 中的原始字符串的情况下将字符串变为小写?

问题描述 投票:0回答:1

我正在使用一个函数,该函数将指向字符串的指针作为参数并以小写形式返回它:

char* strLower(char* s) {
    for(char *p=s; *p; p++) *p=lower(*p);
    return s;
}

截至目前,它确实正确返回了小写字符串,但它还在函数本身之外修改了原始字符串(作为参数的字符串)。我怎样才能避免这种情况?

c string lowercase
1个回答
0
投票

strdup()
/
strndup()
¹或
malloc()
strcpy()
复制字符串。

char *strLower (const char *s) 
{
    char *cp = strdup (s);
    /* Now work with it. */
}

脚注:

1

strdup()
strndup()
将包含在即将推出的 C2X 标准中。

© www.soinside.com 2019 - 2024. All rights reserved.