Pages : 1
#1 Le 14/02/2013, à 17:17
- kboo
C/C++: char: ajouter des '\0'
Bonjour,
Je cherche un moyen d'ajouter des '\0' à la fin d'une chaîne de caractères:
j'ai un bibliothèque qui ne fonctionne pas correctement si on ne lui donne pas le bon nombre de caractère \0 inclu:
à la main si j'ai
char tab[] = "toto";
et qu'il faut 6 caractères je dois faire à la main:
char tab[] = "toto\0";
J'en ajoute un car il y a déjà un \0 inclu dans une chaîne.
Comment faire une fonction qui ajoute les \0 sachant que je me trouve bloqué avec strcat qui n'a pas l'air de prendre en compte les caractères après le premier \0
je sèche :-(
Merci d'avance
Dernière modification par kboo (Le 14/02/2013, à 17:46)
Hors ligne
#2 Le 14/02/2013, à 17:59
- pingouinux
Re : C/C++: char: ajouter des '\0'
Et en faisant ceci ?
char tab[6]="toto";
Hors ligne
#3 Le 14/02/2013, à 18:22
- kboo
Re : C/C++: char: ajouter des '\0'
Et en faisant ceci ?
char tab[6]="toto";
Snif pas du tout car ma bibli pourrie lit après le \0 de fin de chaine et va lire un truc du genre "toto\000\032" ... et si je met "toto\0\0" à la main ça marche mais je ne sais pas comment le faire automatiquement!
Hors ligne
#4 Le 14/02/2013, à 18:35
- pingouinux
Re : C/C++: char: ajouter des '\0'
Une méthode lourdingue :
for(j=strlen(tab);j<lmax;++j) { tab[j]='\0'; }
Ajouté :
Ou bien :
lon=strlen(tab);
memset( tab+lon, '\0', lmax-lon );
Dernière modification par pingouinux (Le 14/02/2013, à 18:39)
Hors ligne
#5 Le 14/02/2013, à 18:40
- Braun
Re : C/C++: char: ajouter des '\0'
Bonjour,
A priori c'est simple, tu remplis la fin de ton tableau avec des zéros.
J'aurais d'abord réagi comme pingouinux, remplir le tableau de zéros puis y placer le texte.
Si cela ne fonctionne pas, tu devrais pouvoir à l'aide de la longueur de la chaîne déterminer la pointeur ad hoc à partir duquel tu remplis.
De mémoire, je n'ai pas testé.
Hors ligne
#6 Le 14/02/2013, à 18:45
- pingouinux
Re : C/C++: char: ajouter des '\0'
@Braun #5 : C'est la solution que tu préconises que j'ai utilisée en #4
Hors ligne
#7 Le 14/02/2013, à 21:23
- Braun
Re : C/C++: char: ajouter des '\0'
Bonsoir pingouinux,
J'étais au clavier quand tu publiais, mais un doute m'étreint, notre ami kboo n'aurait-i pas pu (dû?) forcer des zéros lors de la déclaration du tableau:
char tab[6]={\'0};
Pour ensuite y copier tout ce qu'il veut.
Hors ligne
#8 Le 14/02/2013, à 23:51
- compte supprimé
Re : C/C++: char: ajouter des '\0'
Normalement le memset de pingouinux a le même effet, Braun.
#9 Le 15/02/2013, à 10:25
- kboo
Re : C/C++: char: ajouter des '\0'
Trouvé!!! merci les amis,
Alors voici comment j'ai fait, je sais c'est bête mais ces \0 .. un vrai cauchemar par moment...
string str = "toto";
str.resize(6);
et ça marche !!! si si! je n'y croyais pas!
Hors ligne
#10 Le 15/02/2013, à 10:57
- claudius01
Re : C/C++: char: ajouter des '\0'
Bonjour,
et ça marche !!! si si! je n'y croyais pas! :-)
... conformément à C++/string
Cordialement, A+
--
Claudius
Hors ligne
Pages : 1