char整数加法导致乱码

时间:2014-02-28 01:47:54

标签: c encryption

string encryp(const string msg, int n)
{
    string enMsg = msg;
    for(int i = 0; msg[i]!='\0'; i++)
    {
        if(enMsg[i] != 32)
            enMsg[i] += n;
    }
    return enMsg;
}     

int main(int argc, char **argv)
{
    if(argc > 2) return 1;
    int n = atoi(argv[1]);
    printf("Print the string to be encrypted: ");
    string msg = GetString();
    string enMsg = encryp(msg, n);
    printf("%s\n", enMsg);
}

我正在做凯撒的密码练习;我正在加密的角色变成了胡言乱语。 我怀疑这是因为超出范围的问题,因为当enMsg [i] - = n时,代码加密完美。我怎么能应付这个?

0 个答案:

没有答案