Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1352 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  Concatener un char * et un int en C

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Concatener un char * et un int en C

n°192596
philbarney
Posté le 09-08-2002 à 01:25:01  profilanswer
 

Bonjour. Une question de base en C, je voudrais définir cela :
char * name = "nomi" ou i vaut de 1 a 100 ("nom1" "nom2" ... "nom100" ) . Quelqu'un pourrait-il m'aider ?  
Merci

mood
Publicité
Posté le 09-08-2002 à 01:25:01  profilanswer
 

n°192599
gilou
Modérateur
Modzilla
Posté le 09-08-2002 à 01:31:57  profilanswer
 

T'es pas clair:
c'est un tableau de 100 strings ou une seule string contenant les 100 mots separes par un blanc que tu veux?
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°192604
philbarney
Posté le 09-08-2002 à 01:36:00  profilanswer
 

Désolé je veux affecter 100 mots différents dans le meme char * .
J'affecte un mot, je le traite et ensuite j'affecte un autre mot que je traite , ainsi de suite.

n°192637
gilou
Modérateur
Modzilla
Posté le 09-08-2002 à 03:43:14  profilanswer
 

Donc deja, on va calculer la place necessaire:
nom->100 * 3 char
1-9->9 * 1 char
10-99->89 * 2 char
100->1 * 3 chars
blanc->99 * 1 char
0 final-> 1 * 1 char
 
Donc la chaine a besoin de  
100*3 + 9*1 + 89*2 + 1*3 + 99*1 + 1*1 = 590
Donc tu vas faire un  

Code :
  1. char scratch[8];
  2. char *name;
  3. int i;
  4. name = (char *) malloc (590*sizeof(char));
  5. *name = (char) 0;
  6. for (i=1; i <=100; i++)
  7. {
  8. sprintf(scratch,"name%i", i);
  9. strcat(name, scratch);
  10. if (i<100)
  11.      strcat(name, " " );
  12. }


 
Si tu admet un blanc en fin de name, ca peut s'optimiser (590+1 blanc->591 dans le malloc):

Code :
  1. char scratch[9];
  2. char *name;
  3. int i;
  4. name = (char *) malloc (591*sizeof(char));
  5. *name = (char) 0;
  6. for (i=1; i <=100; i++)
  7. {
  8. sprintf(scratch,"name%i ", i);
  9. strcat(name, scratch);
  10. }


 
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°192638
gilou
Modérateur
Modzilla
Posté le 09-08-2002 à 03:49:35  profilanswer
 

philbarney a écrit a écrit :

Désolé je veux affecter 100 mots différents dans le meme char * .
J'affecte un mot, je le traite et ensuite j'affecte un autre mot que je traite , ainsi de suite.
 




Euh, je t'avais mal compris.
En fait, ce que tu veux faire, c'est:

Code :
  1. char name[8]; /* il y a la place pour name100 */
  2. int i;
  3. for (i=1; i <=100; i++)
  4. {
  5. sprintf(name,"name%i", i);
  6. /* ici, appel au traitement de name */
  7. }

 
A+,


Message édité par gilou le 09-08-2002 à 03:50:01

---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°192715
darkoli
Le Petit Dinosaure Bleu
Posté le 09-08-2002 à 10:07:21  profilanswer
 

gilou a écrit a écrit :

 
Euh, je t'avais mal compris.
En fait, ce que tu veux faire, c'est:

Code :
  1. char name[8]; /* il y a la place pour name100 */
  2. int i;
  3. for (i=1; i <=100; i++)
  4. {
  5. sprintf(name,"name%i", i);
  6. /* ici, appel au traitement de name */
  7. }

 
A+,




En plus y'a la traduction en anglais :D


---------------
Le site de l'année :D (XHTML 1.0 strict) : http://darkoli.free.fr/index.html

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  Concatener un char * et un int en C

 

Sujets relatifs
Liste des codes html des char spéciaux[ C ] Fonction et char*
concatener une chaine?[c++] chaînes de caractères (char *)
[c] Comment convertir un entier en char ...cstring 2 char
[C] char** et &char*cstring, char, mfc
Decouper une chaine de char en PhpmySQL : CHAR ou VARCHAR
Plus de sujets relatifs à : Concatener un char * et un int en C


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR