我正在使用一个函数,该函数将指向字符串的指针作为参数并以小写形式返回它:
char* strLower(char* s) {
for(char *p=s; *p; p++) *p=lower(*p);
return s;
}
截至目前,它确实正确返回了小写字符串,但它还在函数本身之外修改了原始字符串(作为参数的字符串)。我怎样才能避免这种情况?
用
strdup()
/strndup()
¹或malloc()
和strcpy()
复制字符串。
char *strLower (const char *s)
{
char *cp = strdup (s);
/* Now work with it. */
}
1
strdup()
和 strndup()
将包含在即将推出的 C2X 标准中。