J'écris un programme pour vérifier les palindromes. J'ai récemment pris C et je me demandais s'il y avait une raison pour laquelle mon interprétation ne fonctionnerait pas? Cela a-t-il quelque chose à voir avec mon utilisation de la copie directe d'argv dans un tableau charCopier argv et le vérifier pour un palindrome
#include <stdio.h>
#include <string.h>
#include <ctype.h>
int main(int argc,char *argv[]){
int i;
int a;
int size;
for(a = 1; a < argc; a++){
char *reverseThis = argv[a];
char *normal = argv[a];
size = strlen(reverseThis);
for(i = 0; i < size; i++){
reverseThis[i] = normal[size - i - 1];
}
for(i = 0; i < size; i++){
reverseThis[i] = tolower(reverseThis[i]);
normal[i] = tolower(normal[i]);
}
if(strcmp(reverseThis,normal)==0){
printf("\"%s\": on palindromi\n",argv[i]);
}
else
printf("\"%s\": ei ole palindromi\n",argv[i]);
}
return 0;
}
Ni 'char * argv reverseThis = [a],' ', ni char * = normal argv [a];' copie, vous pointez les deux pointeurs à la même chaîne/'tableau char' - la copie est faite via la fonction ['strcpy'] (http://en.cppreference.com/w/c/string/byte/strcpy) – UnholySheep