为什么我得到Segmentation fault (core dumped)
作为终端输出?这是由第二个if
语句引起的。
#include <cs50.h>
#include <stdio.h>
#include <string.h>
int main(int argc, string argv[])
{
string key = argv[1];
if (strlen(key) != 26)
{
printf("Key must contain 26 characters.\n");
return -1;
}
if (strlen(key) == 0)
{
printf("Usage: ./substitution key\n");
return 1;
}
}
1条答案
按热度按时间jecbmhm31#
就像注解中说的,你需要首先验证是否有第二个参数,否则它就不起作用了,为了验证这一点,你可以使用
argc
变量,它存储args
的数量。于是你的if就变成了这样:
还要记住,您需要返回
1
而不是-1