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

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

BruNews 21054 Messages postés jeudi 23 janvier 2003Date d'inscription 7 novembre 2014 Dernière intervention - 17 nov. 2005 à 23:52
+3
Utile
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++
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de BruNews
Zootella 252 Messages postés vendredi 10 juin 2005Date d'inscription 5 septembre 2006 Dernière intervention - 6 nov. 2005 à 18:14
0
Utile
strcat(access, "\n");
Commenter la réponse de Zootella
luhtor 2023 Messages postés mardi 24 septembre 2002Date d'inscription 28 juillet 2008 Dernière intervention - 6 nov. 2005 à 18:36
0
Utile
"char* access = "Rsc\\Img.bmp\";" <= ca c'est n'importe quoi.



char access[20] = "Rsc...";
Commenter la réponse de luhtor
BruNews 21054 Messages postés jeudi 23 janvier 2003Date d'inscription 7 novembre 2014 Dernière intervention - 6 nov. 2005 à 18:53
0
Utile
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
Fituza 23 Messages postés mardi 20 avril 2004Date d'inscription 16 octobre 2008 Dernière intervention - 6 nov. 2005 à 19:09
0
Utile
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
BruNews 21054 Messages postés jeudi 23 janvier 2003Date d'inscription 7 novembre 2014 Dernière intervention - 6 nov. 2005 à 19:21
0
Utile
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
Fituza 23 Messages postés mardi 20 avril 2004Date d'inscription 16 octobre 2008 Dernière intervention - 6 nov. 2005 à 22:13
0
Utile
#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
BruNews 21054 Messages postés jeudi 23 janvier 2003Date d'inscription 7 novembre 2014 Dernière intervention - 6 nov. 2005 à 23:34
0
Utile
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
Fituza 23 Messages postés mardi 20 avril 2004Date d'inscription 16 octobre 2008 Dernière intervention - 17 nov. 2005 à 23:30
0
Utile
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
Fituza 23 Messages postés mardi 20 avril 2004Date d'inscription 16 octobre 2008 Dernière intervention - 18 nov. 2005 à 00:22
0
Utile
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.