Я принимаю строку в качестве аргумента командной строки. Я хочу проверить, является ли введенная строка палиндромом или нет, и распечатать результат. Я написал следующий код. Но он отображает результат «не палиндром» для всех входов.
#include<stdio.h>
#include<string.h>
int main(int argc, char argv[20]) {
int i;
int l = strlen(argv);
char str[20];
bzero(str, 20);
for(i=0; i<l; i++)
{
str[i] = argv[i+2];
}
int flag;
int len = strlen(str);
for(i=0; i< len/2; i++)
{
if(str[i] == str[len - (i+2)])
{
flag = 0;
}
else
{
flag = 1;
break;
}
}
if(flag == 0)
printf("Palindrome\n");
else
printf("Not a palindrome\n");
}
flag
при каждой успешной итерации. Просто инициализируйте его и изменяйте только в случае сбоя. Также у вас неправильный тип дляargv
, который должен бытьchar**
; это может вызвать почти любой хаос. - person dmckee --- ex-moderator kitten   schedule 12.08.2010