gpt4 book ai didi

c - 将 C 数组作为 char* 函数参数传递时出错

转载 作者:行者123 更新时间:2023-12-04 11:37:52 24 4
gpt4 key购买 nike

我正在尝试用 c 语言编写一个简单的代码(愚蠢的问题,但我正在学习),我不明白这段代码给我一个错误......我一定是做错了,我不知道我必须改变...对不起我的英语...在此先感谢所有

#include <stdio.h>
#include <ctype.h>

char* to_up(char* str_);

int main()
{
char any_phrase[] = "This is a phrase";
printf("%s\n", to_up(any_phrase));
printf("%s\n", to_up("this is another phrase"));
return 0;
}

char* to_up(char* str_)
{
int i;
for (i=0; str_[i]; i++)
str_[i] = toupper(str_[i]);
return str_;
}

最佳答案

错误的原因是当您将字符串作为“this is another phrase”单独传递时,因为不包含在变量中,该字符串就是所谓的字符串文字。这意味着,除其他外,字符串是常量:您根本不允许修改。

要解决您的问题,您必须将字符串存储在一个变量中,这样它就可以被您的 to_up() 函数调用修改,因为它修改了字符串的内容。

关于c - 将 C 数组作为 char* 函数参数传递时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3746642/

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