begin process at 2012 05 28 15:19:00
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

chaines de caracteres: caractere NULL


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

chaines de caracteres: caractere NULL

dimanche 4 juillet 2004 à 20:47:35 | chaines de caracteres: caractere NULL

dletozeun

bonjour,

Je sais que lorsque l'on utilise la fonction: sprintf(), celle ci met automatiquement un caractere NULL a la fin du mot ecris dans la chaine.

J'aimerais savoir si c'est possible comment eviter qu'elle ecrive ce caractere NULL.

ce serait bien utile vu que j'utilse plusieurs fois de qsuite cette fonction pour la meme chaine :alors ca me mets plein decracteres null dedans!

Merci!
dimanche 4 juillet 2004 à 20:56:16 | Re : chaines de caracteres: caractere NULL

DeAtHCrAsH

Le probleme ne vient pas de sprintf...
Toute chaine de caracteres doit se terminer par un caractere nul, pour pouvoir etre lues et traiter correctement, sinon tu aurais des caracteres illisible apres ta chaine.

Mets moi ton bout de code ici en me disant précisement ce que tu souhaites faire et je corrige ton code si nécéssaire..

A++ et bonne continuation

Samir
dimanche 4 juillet 2004 à 22:27:45 | Re : chaines de caracteres: caractere NULL

Arnotic

Administrateur CodeS-SourceS
Bonjour,

Si tu veux mettre plusieurs chaine à la suite utilise soir strcpy suivit de strcat.
Ou bien pour faire de l'optimiser utilises la fonction bnstrcpy de Brunews que tu trouveras sur ce site pour faire du chainage direct.

Exemple avec bnstrcpy :

char szTest[256];
char *c;

c = bnstrcpy(szTest, "coucou");
c = bnstrcpy(c, " hello");
bnstrcpy(c, " fin");

code de la fonction bnstrcpy :

__inline char* bnstrcpy(char *dst, char *src) // return ptr sur NULL final
{
__asm {
mov eax, dst
mov ecx, src
dec eax
LcpyLoop:
mov dl, [ecx]
inc eax
inc ecx
mov [eax], dl
or dl, dl
jz short LcpyOut
mov dl, [ecx]
inc eax
inc ecx
mov [eax], dl
or dl, dl
jz short LcpyOut
mov dl, [ecx]
inc eax
inc ecx
mov [eax], dl
or dl, dl
jnz short LcpyLoop
LcpyOut:
}
}

@+
Arnotic,
Admin CS, MVP Visual C++
dimanche 4 juillet 2004 à 22:30:35 | Re : chaines de caracteres: caractere NULL

glipper

Membre Club

Ben sinon tu peux toujours supprimer ce caractere nul avec quelquechose qui doit ressembler à ca :

MaChaine[ strlen(MaChaine)+1 ] = ' ';

Non ?
Glipper
dimanche 4 juillet 2004 à 22:46:22 | Re : chaines de caracteres: caractere NULL

Arnotic

Administrateur CodeS-SourceS
Oui mais pour faire du chainage pas pratique ta solution.
Et surtout pas du tout optimisé.

@+
Arnotic,
Admin CS, MVP Visual C++
mercredi 7 juillet 2004 à 18:05:09 | Re : chaines de caracteres: caractere NULL

dletozeun

Super la fonction bnstrcpy!

Moi en fait , j'utilisais un pointeur qui pointait vers la chaine a remplir et qui avance au fur et a mesure...
Mais je pense que ce serait possible de reculerl e pointeur d'un caractere pur ecraser le caractere NULL...
Mais bnsstrcpy est plus pratique
Merci!!
dimanche 11 juillet 2004 à 15:31:24 | Re : chaines de caracteres: caractere NULL

HCJarod

je ne pige pas pourquoi le code n'est pas plutot :
__inline char* bnstrcpy(char *dst, char *src) // return ptr sur NULL final
{
__asm {
mov eax, dst
mov ecx, src
dec eax
LcpyLoop:
mov dl, [ecx]
inc eax
inc ecx
mov [eax], dl
or dl, dl
jnz short LcpyLoop
}
}

il y a trois fois la même chose??? mais bon j'ai peut etre louper quelquechose!


Chaque problème a sa solution. S'il n'y a pas de solution c'est qu'il n'y a pas de problème.
a+


Cette discussion est classée dans : fonction, chaine, caractere, caracteres, chaines


Répondre à ce message

Sujets en rapport avec ce message

Rechercher une chaine de caractere [ par Johjo ] Il n'y aurait pas une fonction qui me permette de retrouver une chaine de caractere dans une autreparce moi, je trouve rien du tout :(Si quelqu'un pou chaine de caractere de taille variable [ par habibdu70 ] slt,savez vous comment modifier la taille d'une chaine de caractere ?par exemple si le nom de fichier fait 8 caracteres, je creai un fichier de 8 cara Comparaison de chaine [ par anek971 ] Bonjour a tous,ben enfaite je c ca parait bete mais j'ai un agneda a faire j'arrive a faire tt les fontcions sauf la comparaison de chaines,bah enfait copier nombre dans chaine de caracteres?? [ par dletozeun ] bonjour,Je cherche une fonction capable de copier un entier dans une chaine de caracteres et une autre fonction capable de transformer une chaine de c Pb avec fonction retournant chaine de caractères [ par dragon3x6 ] Bonjour,peut - on retourner une chaine de caracteres avec une fonction ?j'ai ecris une fonction qui renvoie une chaine de caracteres du type 'char cha Rechercher une chaine de caractere dans un fichier [ par watch_3754 ] Voila mon probleme peut paraitre simple mais moi ca devient enervant.Je voudrai pouvoir rechercher dans un fichier (qui n'est pas en forme de tableau) Executer une chaine de caracteres... [ par Clonk ] Bonjour,Je voudrais, por alléger mon appli, pouvoir executer une fonction (déjà définie dans mon code) dont le nom est contenu dans une variable. Par les manipulations de chaines de caracteres ???? [ par whikie ] Bonjour,je voudrais savoir s'il existe des foncions de manipulations de chaines de carateres style compter le nombre de caratere d'une chaine, supprim cherche une fonction pour manipuler une chaine de caractere [ par BertaNd ] salut je cherche une fonction qui me permettrait de prendre le premier caractere d'une chaine et de le deplacer a la fin de cette meme chaine, exemple lire une chaine de caractere dans un fichier et la camparer aux autres chaines dans le meme fichier [ par leiloula ] j'ai pa pu programmé un truc qui me permet de lire une chaine de caractere dans un fichier et la camparer aux autres chaines dans le meme fichier et v


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 3,947 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales