gpt4 book ai didi

c - 替换密码 - 修改字符串的问题

转载 作者:行者123 更新时间:2023-11-30 15:27:34 25 4
gpt4 key购买 nike

由于替换第 33 行上的字符出现问题,以下代码在尝试运行时被破坏。我是否错误地替换了字符串中的字符?

该代码旨在加密 *cat 字符串中的小写字符。 code2 中的每个字符都“映射”到 code1 中相同位置的字符。 *cat 中的小写字符将替换为 code2 中的替换字符。

//Ben Adamson
//v1.0
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <ctype.h>

void code(char *s);

int main()
{
char *cat = "The cat sat";

code(cat);

_getch();
return 0;
}

void code(char *s)
{
char code1[] = "abcdefghijklmnopqrstuvwxyz";
char code2[] = "bpduhijkaltxwmrzfoysvngeqc";
char *letter;
unsigned int i, letterpos;

for(i=0; i<strlen(s); i++)
{
if(isalpha(s[i]) && islower(s[i]))
{
letter = strchr(code1, s[i]);
letterpos = (int)(letter - code1);
s[i] = code2[letterpos];
}
}
printf("New string is %s", s);
}

最佳答案

char *cat = "The cat sat";

她的是只读的。

s[i] = code2[letterpos];

如果需要写入,则需要分配内存。

char *cat =  malloc(100);

更好的方法是:

char *cat = strdup("The cat sat");

关于c - 替换密码 - 修改字符串的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26933436/

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