J'essaie d'apprendre C en ce moment et il y a un exemple qui ne me permet pas d'utiliser Par exemple, j'ai besoin d'inverser la chaîne avec Pointeurs. P> Mais quand je échange, il est coincé. P> string.h code> ou d'autres fonctions.
#include <stdio.h>
void reverseCopy( char *, char *, int);
int main(){
char *word1 = "Welcome to the C programming";
char word2[50];
int i,count;
for(i=0;i<50;i++){
if(word1[i]=='\0') break;
count++;
}
reverseCopy(word1,word2,count);
return 0;
}
void reverseCopy( char * g1, char * g2 ,int lenght){
g2=g1;
char temp;
int i;
int j=temp-1;
for(i=0;i<j/2;i++){
temp=*(g2+i);
*(g2+i)=*(g2+j-i);
*(g2+j-i)=temp;
}
puts(g2);
}
3 Réponses :
Je pense que vous obtenez le problème BCS de Main: strong> p> } P> sortie: strong> p> INT J = TEMP-1 CODE> tandis que TEMP est un caractère, également l'affectation de
g2 = g1 code> vous causait un problème < p> Je peux vous suggérer le suivant: p>
Le code posté, lorsque vous exécutez via le compilateur, vous trouverez:
Compilation finished successfully.
Une telle fonction de chaîne qui copie une chaîne dans l'ordre inverse vers un tableau de caractères ne doit avoir que deux paramètres: le tableau de caractères de destination et la chaîne source. Il est supposé que la matrice de caractères de destination est suffisamment grande pour accueillir la chaîne source.
comme pour votre fonction rend la fonction insensée, car après cette instruction, l'adresse de la matrice de caractères de destination est perdue. P> Cette affectation ne copie pas la chaîne pointée par maintenant Après cette affectation, vous essayez d'inverser le littéral de la chaîne qui entraîne un comportement indéfini. P> En outre, vous utilisez des variables non initialisées telles que p> si la fonction devrait Soyez écrit en utilisant uniquement des pointeurs, vous ne devez pas utiliser une variable entière et la fonction ne doit rien produire. C'est l'appelant de la fonction qui décidera de produire quoi que ce soit de produire quoi que ce soit. P> ci-dessous Il existe un programme démonstratif qui montre comment la fonction peut être implémentée en utilisant uniquement des pointeurs. P> Reversecopy code> Définition, puis même la première instruction de la fonction p>
g1 code> dans le tableau de caractères pointé par
G2 code> lorsque vous pensez évidemment. Cette affectation rend les pointeurs
g1 code> et
g2 code> pour pointer sur la même chaîne du littéral à chaîne transmis à la fonction sous forme d'argument. P>
i code> qui joue le rôle d'un index. p>
Welcome to the C programming
gnimmargorp C eht ot emocleW
Pensez un peu à ce que l'assignation
g2 = g1 code> fait. Pensez également à la raison pour laquelle il est recommandé d'utiliser
const char * code> pour pointer vers des littéraux à chaîne (votre livre de texte doit avoir cette information).
J'ai résolu votre problème que vous pouvez vérifier la réponse
@Mohamedkaram, il est très probable que Bahadir soit un étudiant et c'est une mission qu'ils devraient résoudre par eux-mêmes. Par conséquent, il est préférable de suggérer des problèmes et (éventuellement) suggérer des corrections. Cela n'aide pas à Bahadir de leur donner une réponse complète et de travail