gpt4 book ai didi

在 C 中执行 Rot13 时崩溃

转载 作者:太空宇宙 更新时间:2023-11-04 00:26:08 26 4
gpt4 key购买 nike

我觉得这应该是非常基础的,但出于某种原因我被卡住了。

这是我的:

char *rot13(char *s)
{
char *p=s;
int upper;

while (*p) {
upper=toupper(*p);
if (upper >='A' && upper <= 'M')
*p+=13;
else if (upper>='N' && upper <= 'Z')
*p-=13;
++p;
}
return s;
}

我不是 C 大师,但我相对确定这是微不足道的事情,我似乎无法确定它。我得到的错误是,一旦它命中任一字符修饰符(*p+=13*p-=13),我就会在 ##### 处收到“未处理的异常” #######:访问冲突写入位置#####”

我做错了什么?

谢谢

最佳答案

您是否在调用 rot13() 时使用(指向 a 的)字符串文字作为实际参数?字符串文字在 C 中是只读的。尝试一些东西

char foo[] = "YOUR STRING TO BE ROT13'D IN-PLACE.";

rot13 (foo);

关于在 C 中执行 Rot13 时崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12307991/

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