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   -
Bonjour,
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

xaviermfx Messages postés 2 Date d'inscription   Statut Membre Dernière intervention  
 
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
0
mirmoleboss Messages postés 303 Date d'inscription   Statut Membre Dernière intervention   17
 
Merci c'est parfait
0
didji31320 Messages postés 23 Date d'inscription   Statut Membre Dernière intervention  
 
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 :
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.
0