Strcat
Résolu
mirmoleboss
Messages postés
303
Date d'inscription
Statut
Membre
Dernière intervention
-
didji31320 Messages postés 23 Date d'inscription Statut Membre Dernière intervention -
didji31320 Messages postés 23 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'aimerais savoir comment dois je faire pour concatener.
Je m'explique, j'ai ce code.
et dans imageload je souhaite mettre une variable qui a pour valeur celle de la carte1 issu du random à laquelle je rajoute un .png
Cordialement
merci d'avance
J'aimerais savoir comment dois je faire pour concatener.
Je m'explique, j'ai ce code.
int Random (int _iMin, int _iMax) /* fonction random pour améliorer l'éxistente en c qui n'est pas vraiment aléatoire */ { return (_iMin + (rand () % (_iMax-_iMin+1))); } void premierecarte() { int hasard1; srand (time (NULL)); /* tirage des cartes alétoire grace a srand qui utilise l'heure de la machine */ hasard1 = Random (0,51); tab_hasard[0]=hasard1; carte1=tableau_cartes[hasard1]; tab_cartetire[0] = *carte1; /* servira a ne pas tirer deux fois la meme carte */ couleurcarte1 = &carte1[0]; /*extraction de le couleur de la carte*/ valeurcarte1[0] = &carte1[1];/*on met la valeur dans valeurcarte*/ printf("%s\n", carte1); SDL_Surface *imagecarte1 = NULL; SDL_Rect positionimagecarte1; positionimagecarte1.x = 40; positionimagecarte1.y = 160; //char *strcat(char* carte1[1],const char* ".png") imagecarte1 = IMG_Load("t05.png"); SDL_BlitSurface(imagecarte1, NULL, ecran, &positionimagecarte1); SDL_Flip(ecran); SDL_FreeSurface(imagecarte1); }
et dans imageload je souhaite mettre une variable qui a pour valeur celle de la carte1 issu du random à laquelle je rajoute un .png
Cordialement
merci d'avance
3 réponses
strcat permet de mettre ensemble deux chaînes de caractères, voila la syntaxe
strcat(chaine dans laquelle on ajoute la seconde,chaine à ajouter)
exemple: char *chaine1[10]="grand ";
char *chaine2[5];="merci"
strcat(chaine1,chaine2);
printf"%s",strcat(chaine1,chaine2);
affichage: grand merci
jesper avoir fait kelke choz pour toi
strcat(chaine dans laquelle on ajoute la seconde,chaine à ajouter)
exemple: char *chaine1[10]="grand ";
char *chaine2[5];="merci"
strcat(chaine1,chaine2);
printf"%s",strcat(chaine1,chaine2);
affichage: grand merci
jesper avoir fait kelke choz pour toi
bonjour,
strcat est un fonction de <string.h> qui agit (comme les autres fonctions de cette bibliothèque) sur des chaines statiques or là tu utilise des chaines dynamiques avec les pointeurs.
donc il te faut soit passer en chaine statiques et effectuer le strcat
sinon il faut creer un sous programme qui face la même chose en chaine dynamique (je ne sais pas si il en existe une toute faite mais surement)
sinon voilà un exemple :
sans oublier la fonction "longueur"
En espérant avoir répondu à ta question.
strcat est un fonction de <string.h> qui agit (comme les autres fonctions de cette bibliothèque) sur des chaines statiques or là tu utilise des chaines dynamiques avec les pointeurs.
donc il te faut soit passer en chaine statiques et effectuer le strcat
sinon il faut creer un sous programme qui face la même chose en chaine dynamique (je ne sais pas si il en existe une toute faite mais surement)
sinon voilà un exemple :
char * concat (char * chaine1, char * chaine2) { char * chaineConcat; int i; chaineConcat=(char*)malloc((longueur(chaine1)+longueur(chaine2))*sizeof(char)); for(i=0;i<longueur(chaine1);i++) { chaineConcat[i]=chaine1[i]; } for(i=0;i<longueur(chaine2);i++) { chaineConcat[longueur(chaine1)+i]=chaine2[i]; } chaineConcat[longueur(chaine1)+i]='\0'; return chaineConcat; }
sans oublier la fonction "longueur"
int longueur ( char * chaine) { int i=0; while(*chaine!='\0') { (int*)chaine++; i++; } return i; }
En espérant avoir répondu à ta question.