La vérification de palindrome chaîne en c

Je suis accepter une chaîne de caractères comme argument de ligne de commande. Je veux vérifier si la saisie de la chaîne est un palindrome ou non et imprimer le résultat. J'ai écrit le code suivant. Mais son afficher le résultat "pas palindrome" pour toutes les entrées.

#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");
}
Je ne suis pas la possibilité de formater le code ici. Quelqu'un peut-il m'aider avec ça aussi avec la programmation de l'enjeu? Comment puis-je imprimer chaque ligne de code sur une ligne différente?
Pour formater votre code, tiret avec quatre espaces, ou utiliser le 101010 bouton. Il n'est pas lisible par la façon dont elle est maintenant.
coller votre code dans la zone de texte à partir de n'importe quel éditeur que vous utilisez, sélectionnez tout, puis de choisir le format de code de touche (il ressemble à peu de 1s et 0s).
Pas de réponse à votre question, mais il n'est pas nécessaire de réinitialiser flag à chaque itération. Initialiser et de ne changer en cas d'échec. Aussi, vous avez le mauvais type de argv qui devrait être char**; ce qui pourrait être la cause de presque n'importe quel genre de ravages.
Merci!!!!! Il a aidé. @Carl Norum: Merci à vous pour votre aide !! @dmckee: Merci à vous !

OriginalL'auteur Khushboo | 2010-08-12