Ajouter deux chaines de caractère. [Résolu]

Signaler
Messages postés
23
Date d'inscription
mardi 20 avril 2004
Statut
Membre
Dernière intervention
16 octobre 2008
-
Messages postés
23
Date d'inscription
mardi 20 avril 2004
Statut
Membre
Dernière intervention
16 octobre 2008
-
Bonjour,
j'aimerai savoir comment ajouter une chaine de caractère de type char* avec une autre chaine de type const char*;
exemple:
char* access = "Rsc\\Img.bmp\";
access += "\n";

Merci de bien vouloir me répondre et désolé si cette question a déjà été posé auparavant ne l'ayant pas trouver en recherchant sur le forum...

Fituza

10 réponses

Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
27
Il y avait déjà tout ce qu'il faut au dessus.

int len, count;
char *result;

len = strlen(access);
count = len + strlen(filter);
result = (char*) malloc(count + 1);
strcpy(result, access);
strcpy(result + len, filter);

// affichage et emploi de result
// et quand plus besoin
free(result);

ciao...
http://dev.winsysdev.com
BruNews, MVP VC++
Messages postés
252
Date d'inscription
vendredi 10 juin 2005
Statut
Membre
Dernière intervention
5 septembre 2006
1
strcat(access, "\n");
Messages postés
2023
Date d'inscription
mardi 24 septembre 2002
Statut
Membre
Dernière intervention
28 juillet 2008
5
"char* access = "Rsc\\Img.bmp\";" <= ca c'est n'importe quoi.



char access[20] = "Rsc...";
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
27
c'est légal mais ça définit un pointeur sur une constante, impossible de chainer quoi que ce soit sur ce pointeur sinon badaboum.

ciao...
http://dev.winsysdev.com
BruNews, MVP VC++
Messages postés
23
Date d'inscription
mardi 20 avril 2004
Statut
Membre
Dernière intervention
16 octobre 2008

Si j'ai bien compris on peut pas faire de chaine de caractère dynamique...
Il faut donc prévoir la taille de la chaine au tout début du programme, ca ne va pas être évident merci pour vos réponses.

Fituza
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
27
heureusement oui:
char *c = (char*) malloc(60);

sinon mets un tableau:
char buf[60];
strcy(buf, psz);
strcat(buf, psz2);

ciao...
http://dev.winsysdev.com
BruNews, MVP VC++
Messages postés
23
Date d'inscription
mardi 20 avril 2004
Statut
Membre
Dernière intervention
16 octobre 2008

#include

using namespace std;
int main()
{

char *access = "Rsc\\load.bmp" ;
char *EoS = "\n";
char *String = (char*) malloc(sizeof(access) + sizeof(EoS));
int c = 0;
for (;access[c]; c++)
{
String[c] = access[c];
}
int d = c;
c = 0;
for(;EoS[c];c++, d++)
{
String[d] = EoS[c];
}



cout<<"\nFin du Programme. "<<endl;

delete String;
int a;
cin>>a;

return 0;
}
Pas très propre mais c'est mieu que rien merci beaucoup pour votre aide. :)
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
27
char access[] = "Rsc\\load.bmp";
char *String;
int n = strlen(access);
String = (char*) malloc(n + 2);
strcpy(String, access);
String[n] = '\n';
String[n + 1] = 0;

ciao...
http://dev.winsysdev.com
BruNews, MVP VC++
Messages postés
23
Date d'inscription
mardi 20 avril 2004
Statut
Membre
Dernière intervention
16 octobre 2008

Bonsoir, sans vouloir abuser de votre temps ni de votre espace (sur le forum) , j'aurai aimé savoir comment ajouter deux chaines de caractères char*?


ex:


char* access = "Rsc\\Title ";


char* filter = "[file://Filter.bmp/ \\Filter.bmp]";


char* String = access + filter;


J'ai beaucoup de mal à me documenter sur ses sujets...


Et cela m'est vraiment necessaire si je ne veux pas que mon programme principale ne soit trop long.



Fituza
Messages postés
23
Date d'inscription
mardi 20 avril 2004
Statut
Membre
Dernière intervention
16 octobre 2008

Encor une fois, merci beaucoup BruNews!

Fituza