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

Messages postés
23
Date d'inscription
mardi 20 avril 2004
Dernière intervention
16 octobre 2008
- - Dernière réponse : Fituza
Messages postés
23
Date d'inscription
mardi 20 avril 2004
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
Afficher la suite 

Votre réponse

10 réponses

Meilleure réponse
Messages postés
21054
Date d'inscription
jeudi 23 janvier 2003
Dernière intervention
7 novembre 2014
34
3
Merci
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++

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 91 internautes nous ont dit merci ce mois-ci

Commenter la réponse de BruNews
Messages postés
252
Date d'inscription
vendredi 10 juin 2005
Dernière intervention
5 septembre 2006
0
Merci
strcat(access, "\n");
Commenter la réponse de Zootella
Messages postés
2023
Date d'inscription
mardi 24 septembre 2002
Dernière intervention
28 juillet 2008
5
0
Merci
"char* access = "Rsc\\Img.bmp\";" <= ca c'est n'importe quoi.



char access[20] = "Rsc...";
Commenter la réponse de luhtor
Messages postés
21054
Date d'inscription
jeudi 23 janvier 2003
Dernière intervention
7 novembre 2014
34
0
Merci
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++
Commenter la réponse de BruNews
Messages postés
23
Date d'inscription
mardi 20 avril 2004
Dernière intervention
16 octobre 2008
0
Merci
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
Commenter la réponse de Fituza
Messages postés
21054
Date d'inscription
jeudi 23 janvier 2003
Dernière intervention
7 novembre 2014
34
0
Merci
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++
Commenter la réponse de BruNews
Messages postés
23
Date d'inscription
mardi 20 avril 2004
Dernière intervention
16 octobre 2008
0
Merci
#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. :)
Commenter la réponse de Fituza
Messages postés
21054
Date d'inscription
jeudi 23 janvier 2003
Dernière intervention
7 novembre 2014
34
0
Merci
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++
Commenter la réponse de BruNews
Messages postés
23
Date d'inscription
mardi 20 avril 2004
Dernière intervention
16 octobre 2008
0
Merci
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
Commenter la réponse de Fituza
Messages postés
23
Date d'inscription
mardi 20 avril 2004
Dernière intervention
16 octobre 2008
0
Merci
Encor une fois, merci beaucoup BruNews!

Fituza
Commenter la réponse de Fituza

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.