gpt4 book ai didi

控制字符串指针 strupr()

转载 作者:行者123 更新时间:2023-11-30 15:41:44 26 4
gpt4 key购买 nike

当我在 Windows 上使用代码块构建此代码时,它显示控制台窗口并停止运行,请帮助我修复它

#include <stdio.h>
#include <string.h>

int main ()
{
char *str="these";
strupr(str);
printf("%s", str);
return 0;
}

最佳答案

问题在于您的字符串定义,而不是 strupr 的使用,因为上面的一些评论已经强调了这一点。您的 str 指针实际上指向只读内存,因此崩溃。看看这个question引用 c-faq.com,或直接在 C standard 中引用: "数组的内容是可以修改的。另一方面,声明

    char *p = "abc";

将 p 定义为“char 指针”类型,并将其初始化为指向长度为 4 的“char 数组”类型的对象,该对象的元素使用字符串文字进行初始化。如果尝试使用 p 修改数组的内容,行为未定义。”

要使该代码工作,只需定义一个非常量数组:

    char str[]="these";

关于控制字符串指针 strupr(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20436324/

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