为什么我的输出是分段失败?

 收藏

我试图在C中创建一个密码,并遍历2个数组以将句子字符与字母ACSII值进行比较,然后将这些字母更改为加密的字母值。到目前为止,这是我得到的:

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

int main(void)
{
    string test = "JTREKYAVOGDXPSNCUIZLFBMWHQ";
    string sentence = "DEEEATSXYLAPHONEELEPHANTTY";
    int alphabet[26];

    for (int i = 0; i < 26; i++)
    {
        alphabet[i] = i + 65;
    }

    for (int i = 0; i < 26; i++)
    {
        for (int j = 0; j < 26; j++)
        {
            if (sentence[i] == alphabet[j])
            {
                sentence[i] = test[j];
            }
        }
    }

    printf("%s", sentence);

}

因此,输出为“分段失败”。我觉得自己已经正确地遍历了,但这并不是我第一次感到自信但看上去很愚蠢。

回复