【发布时间】:2022-11-22 18:32:25
【问题描述】:
所以我已经在这段代码上工作了大约一天,并最终成功地创建了文件而没有弹出错误消息。但是,一旦我运行它,就会弹出:
分段错误(核心已转储)
`
#include <cs50.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, string argv[])
{
int k=atoi(argv[1]);
if (argc!=2)
{
printf("Usage: ./caesar key\n");
return 1;
}
else if (argv[1]<0)
{
printf("Usage: ./caesar key\n");
return 2;
}
else if (argv[1]== NULL)
{
printf("Usage: ./caesar key\n");
return 3;
}
string plaintext= get_string("plaintext: ");
printf("ciphertext: ");
for(int i=0; i<strlen(plaintext); i++)
{
if(plaintext[i]>='a' && plaintext[i]<='z')
{
printf("%c", ((plaintext[i]-97+k)%26)+97);
}
else if(plaintext[i]>='A' && plaintext[i]<='Z')
{
printf("%c", ((plaintext[i]-65+k)%26)+65);
}
}
printf("\n");
}
` 谁能告诉我我在这里做错了什么?
还没有真正尝试过任何方法来解决这个问题。
【问题讨论】:
-
首先要做的是在调试器中运行它,找出它在哪一行崩溃。
标签: c encryption cs50 caesar-cipher