Я пытаюсь проверить возвращаемое значение функции в операторе if, чтобы я возвращал его значение, если оно равно 1, но оно вызывается, когда я делаю это в операторе if. Есть ли способ предотвратить вызов в операторе if. Я хочу проверить все три функции, но если я проверил одну без оператора if, он вернет 0 и остановится.
if (argc != 2)
{
printf("Usage: ./substitution key\n");
return 1;
}
else
{
string chars = argv[1];
if (check_length(chars) == 1)
{
return check_length(chars);
}
else if (check_rc(chars) == 1)
{
return check_rc(chars);
}
else if (check_alpha(chars) == 1)
{
return check_alpha(chars);
}
}
string ptext;
ptext = get_string("Input Text: \n");
}
int check_rc(string chars)
{
for (int i = 0, n = strlen(chars); i < n; i++)
{
for (int j = 0; j < n; j++)
{
if (!(i == j))
{
if (chars[i] == chars[j])
{
printf("Key must not contain repeated characters. \n");
return 1;
}
}
}
}
return 0;
}
int check_alpha(string chars)
{
for (int i = 0, n = strlen(chars); i < n; i++)
{
if (isdigit(chars[i]))
{
printf("Key must only contain alphabetic characters. \n");
return 1;
}
}
return 0;
}
int check_length(string chars)
{
int charLength = strlen(chars);
if( charLength !=26)
{
printf("Key must contain 26 characters.\n");
return 1;
}
return 0;
}