Ajouter deux chaines de caractère.

Résolu
Fituza Messages postés 23 Date d'inscription mardi 20 avril 2004 Statut Membre Dernière intervention 16 octobre 2008 - 6 nov. 2005 à 18:09
Fituza Messages postés 23 Date d'inscription mardi 20 avril 2004 Statut Membre Dernière intervention 16 octobre 2008 - 18 nov. 2005 à 00:22
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

BruNews Messages postés 21041 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019 20
17 nov. 2005 à 23:52
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++
3
Zootella Messages postés 252 Date d'inscription vendredi 10 juin 2005 Statut Membre Dernière intervention 5 septembre 2006 1
6 nov. 2005 à 18:14
strcat(access, "\n");
0
luhtor Messages postés 2023 Date d'inscription mardi 24 septembre 2002 Statut Membre Dernière intervention 28 juillet 2008 6
6 nov. 2005 à 18:36
"char* access = "Rsc\\Img.bmp\";" <= ca c'est n'importe quoi.



char access[20] = "Rsc...";
0
BruNews Messages postés 21041 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019 20
6 nov. 2005 à 18:53
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++
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Fituza Messages postés 23 Date d'inscription mardi 20 avril 2004 Statut Membre Dernière intervention 16 octobre 2008
6 nov. 2005 à 19:09
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
0
BruNews Messages postés 21041 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019 20
6 nov. 2005 à 19:21
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++
0
Fituza Messages postés 23 Date d'inscription mardi 20 avril 2004 Statut Membre Dernière intervention 16 octobre 2008
6 nov. 2005 à 22:13
#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. :)
0
BruNews Messages postés 21041 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019 20
6 nov. 2005 à 23:34
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++
0
Fituza Messages postés 23 Date d'inscription mardi 20 avril 2004 Statut Membre Dernière intervention 16 octobre 2008
17 nov. 2005 à 23:30
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
0
Fituza Messages postés 23 Date d'inscription mardi 20 avril 2004 Statut Membre Dernière intervention 16 octobre 2008
18 nov. 2005 à 00:22
Encor une fois, merci beaucoup BruNews!

Fituza
0