L'inversion de char tableau dans la programmation en C
Je suis nouvelle c langage de programmation. Je suis en train d'inverser les éléments dans le tableau de char. En fait, j'ai presque inversés, mais il y a quelque chose que je ne peux pas le faire.
Voici le code:
void q2_reverseTheArray(char word[100]){
int lentgh=sizeof(word);
int j;
for(j=length+1; j>=0; j--){
printf("%c", word[j]);
}
Le code inverse de la matrice, mais il ajoute une autre lettre.
- Êtes-vous sûr que c'est le code que vous utilisez? Cela ne devrait pas compiler, que vous avez une faute de frappe dans la déclaration de
length
; puis il devrait planter parce que vous commencer la boucle en accédant àword[length + 1]
qui est de 2 indices hors de portée. - Vos conditions de boucle sont mauvais. Les tableaux sont indexés à partir de 0 à length-1. Essayez ce qui suit:
for (j=length-1; j>0; j--)
Cela va démarrer au dernier caractère et répétez jusqu'à ce que la première. Mieux encore, habitués à l'aide de votre débogueur. - Oui, j'en suis sûr. J'ai donné le paramètre "livre". Et le résultat a été "aakoob".
- À tous les lecteurs: après Avoir dit "je suis nouveau sur le langage de programmation c", couper ce mec est un peu de mou et de s'abstenir de voter ou à proximité de vote de la question.
- Double Possible de Sizeof tableau passé en paramètre
Vous devez vous connecter pour publier un commentaire.
ici vous avez un exemple de travail:
votre code a été de mal en
length + 1
il faut direlength - 1
.et vous devez payer attention à la terminaison
'\0'
.Le code correct est
C'est parce que la chaîne éléments sont indexés à partir de
0
àlength-1
. Par exemple,strcpy(word, "Look at Sky"}
au lieu