gpt4 book ai didi

c - 将一个 char 数组分配给另一个,它也是 c 中函数的参数

转载 作者:行者123 更新时间:2023-11-30 14:55:15 24 4
gpt4 key购买 nike

我运行此代码并每次都会关闭控制台。

你能帮我吗?谢谢

int lower(int a) 
{
if ((a >= 0x41) && (a <= 0x5A))
a |= 0x20;
return a;
}
void get_lower_case(char** str)
{
int str_len = strlen(*str);
char *temp = (char *)malloc(str_len);

while (**str)
{
*temp =lower(**str);
temp++;
*str++;
}
strncpy( *str, temp, str_len);
free(temp);
}
int main()
{
char searchChars[] = "findstring";
get_lower_case(&searchChars);

return (0);
}

或者还有其他方法可以更改 char 数组作为参数吗?

最佳答案

继续注释,不需要将指向 char 的指针传递给 get_lower_case 。您在searchChars中有一个可修改的字符串,因此只需传递字符串并对其中的字符进行操作即可。您将大大简化向小写字母的转换。

此外,不要在代码中使用魔数(Magic Number),例如(a >= 0x41) && (a <= 0x5A) , (a >= 'A') && (a <= 'Z')更容易阅读。您可以保留0x2032 .

将各个部分放在一起,您可以执行如下操作:

#include <stdio.h>

int lower(int a)
{
if ((a >= 'A') && (a <= 'Z'))
a |= 0x20;
return a;
}

void get_lower_case (char *str)
{
while (*str) {
*str = lower(*str);
str++;
}
}

int main (void)
{
char searchChars[] = "FINDstring";
get_lower_case(searchChars);
printf ("%s\n", searchChars);

return (0);
}

示例使用/输出

$ ./bin/tolower
findstring

关于c - 将一个 char 数组分配给另一个,它也是 c 中函数的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46067731/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com