[C] Déplacement dans un tableau dynamique ...
oliver91
Messages postés
51
Date d'inscription
Statut
Membre
Dernière intervention
-
Stupeflip Messages postés 391 Date d'inscription Statut Membre Dernière intervention -
Stupeflip Messages postés 391 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je ne comprends pas pourquoi cette partie de code ne fonctionne pas :
j=strstr(Tab[i],"->")+2-ProdTab[i];
En fait, je cherche à faire une recherche dans le tableau Tab[i] (tableau dynamique à 2 dimensions) afin de me placer dans le tableau après le "->" afin de pouvoir copier les caractères qui suivent ...
Merci de votre aide.
Je ne comprends pas pourquoi cette partie de code ne fonctionne pas :
j=strstr(Tab[i],"->")+2-ProdTab[i];
En fait, je cherche à faire une recherche dans le tableau Tab[i] (tableau dynamique à 2 dimensions) afin de me placer dans le tableau après le "->" afin de pouvoir copier les caractères qui suivent ...
Merci de votre aide.
A voir également:
- [C] Déplacement dans un tableau dynamique ...
- Tableau croisé dynamique - Guide
- Tableau word - Guide
- Exemple tableau croisé dynamique télécharger - Télécharger - Tableur
- Trier un tableau excel - Guide
- Tableau ascii - Guide
7 réponses
En fait, sauf erreur de ma part (ce qui serait fort possible !), strstr retourne l'adresse de la 1ere occurence de la chaine "->" ... en faisant -Tab[i] je pense obtenir l'indice dans le tableau auquel se trouve le '-' donc en faisant +2, je pense me trouver sur le caractère qui suit la chaine "->" ... non ?
Beh oui ça marche. Enfin après tout dépend de ta déclaration dynamique de ton tableau. Et pourquoi tu as fait - ProdTab[i] et pas -Tab[i] ?
Peux-tu poster la déclaration de ton tableau, avec son initialisation des chaines de caractères ?
Peux-tu poster la déclaration de ton tableau, avec son initialisation des chaines de caractères ?
/*Récupération du tableau de productions*/ ProdTab=(char**)malloc(cmptn*sizeof(char*)); for(i=0;i<tailleficP;i++){ if(ProdTabInt[i]!='\n'){ cmptc++; }else{ ProdTab[j]=(char*)malloc((cmptc+1)*sizeof(char)); for(k=0;k<cmptc;k++){ ProdTab[j][k]=ProdTabInt[MemCmpt+k]; } ProdTab[j][k]='\0'; MemCmpt=MemCmpt+cmptc+1; cmptc=0; j++; } }
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question/*Création dun tableau contenant la 2e partie des prod*/ T2=(char***)malloc(cmptn*sizeof(char**)); for(i=0;i<cmptn;i++){ for(j=strstr(ProdTab[i],"->")+2-ProdTab[i];j<strlen(ProdTab[i]);j++){ if(ProdTab[i][j]==' '){cmpte++; } } T2[i]=(char**)malloc((cmpte+1)*sizeof(char*)); for(j=strstr(ProdTab[i],"->")+2-ProdTab[i];j<strlen(ProdTab[i]);j++){ if(ProdTab[i][j]!=' '){ cmptm++; } T2[i][j]=(char*)malloc((cmptm+1)*sizeof(char)); T2[i][j][k]=ProdTab[i][j]; T2[i][j][cmptm]='\0'; } }