маркер защиты от подделки в основных страницах бритвы asp.net?

it is command line based c program to check for palindrome string and my answer is coming right but i had to supply arguments 2 times in the terminal....

blockquote>

Ваша программа не может дать правильные результаты, потому что цикл for используется для определения того, является ли входная строка палиндром или не повторяется не один раз. [подробнее см. ниже]

Я не знаю, что именно означает - i had to supply arguments 2 times in the terminal

By глядя на ваш код, могу только сказать, что вы должны передать строку (чтобы проверить, является ли она палиндром или нет) в качестве аргумента командной строки, и поскольку ваш main() имеет gets(), поэтому он останавливается там и ждет ввода пользователя и там вы должны указывать ту же строку, которую вы передаете в качестве аргумента командной строки для программы. Кажется, это то, что вы подразумеваете под своим утверждением - i had to supply arguments 2 times...

Прежде всего, не используйте gets (). Это небезопасно и, кроме того, оно устарело. Проверьте на этом . Вместо этого используйте fgets (). Проверьте этот .

Есть два способа получить вход -

  • Возьмите его у пользователя во время выполнения (вы можете использовать fgets() для это)
  • Передайте его как аргумент командной строки

Так как в аннотациях вы упомянули - it is command line based c program to check for palindrome string and my answer is... Итак, в моем ответ, я буду принимать ввод как аргумент командной строки.

Если вы используете компилятор gcc, программа компиляции с параметрами -Wall -Wextra и компилятором выдает предупреждающее сообщение для этого оператора

(argv[1]) == string;

warning: statement with no effect

В цикле for функции palindrome() вы прерываете цикл на первой итерации:

for (i = 0; i < strlen(string); i++) {
  if (string[i] == string[strlen(string) - i - 1])
    flag = 1;
  break;  // <--- will break the loop in first iteration
}

И функция palindrome() заканчивает сообщение о палиндроме на основе того, будет ли первый и последний символ входной строки такой же или нет.

Вы должны разбить цикл только тогда, когда любой символ в позиции i в первой половине строки не совпадает с символом в позиции string_len - i -1 во второй половине строки. Кроме того, вам не нужно итерировать всю строку, чтобы проверить, является ли она палиндром или нет:

for (i = 0; i < strlen(string); i++) {
                ^^^^^^^^^^^^^

Вам просто нужно перевести строку в ее середину, чтобы определить, является ли строка палиндром или нет .

Тип возврата strlen() - size_t, который является unsigned integer. Итак, лучше взять итератор цикла одного и того же типа.

Между заголовком файла и скобкой угла открытия и закрытия не должно быть пробелов <,>:

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

Пока ищет заголовочный файл, компилятор также включает пробел в имени и не обрезает ведущее и конечное пространство и сообщит об ошибке ' stdio.h ' заголовочного файла.

Объединяя все это вместе, вы можете сделать :

#include 
#include 

int palindrome(char *p_string) {
    int flag = 0;
    size_t len = strlen(p_string);

    if (len == 1)
        flag = 1;

    for (size_t i = 0; i < (len/2); i++) {
        if (p_string[i] == p_string[len - i - 1])
            flag = 1;
        else
            break;
    }

    if (flag == 1)
        printf("palindrome string\n");
    else
        printf("not palindrome string\n");

    return 0;
}
int main(int argc, char * argv[]) {
    /* Check for number of expected arguments */
    if (argc != 2) {
        fprintf (stderr, "Invalid number of arguments\nUsage:%s \n", argv[0]);
        return -1;
    }

    palindrome(argv[1]);
    return 0;
}

Вы можете использовать его следующим образом:

$ ./a.out abc
not palindrome string
$ ./a.out aba
palindrome string
$ ./a.out abccba
palindrome string
0
задан Fred 20 January 2019 в 05:03
поделиться

1 ответ

Согласно Документации , @Html.AntiForgeryToken() не нужно добавлять, поскольку используемой разметки должно быть достаточно:

<form method="post">
...
</form>

Я бы проверил, что токен установить в нижней части формы, как указано в этой статье

0
ответ дан eVolve 20 January 2019 в 05:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: