Accueil > Forum > > > > Caractere \x00
Caractere \x00
vendredi 20 mai 2005 à 18:45:57 |
Caractere \x00

SnOOpss
|
Bonjour !
Voila je doit modifier des octets dans des valeurs binaires et j'ai des probleme avec le caractere 00.
Exemple plutot que de faire
chaine[1] =65;
chaine[2] = 66;
je fait chaine = "\x41\x42";
Mais j'ai des problemes avec \x00 exemple chaine = "\x41\x42\x00\x43\x44\"; je me retrouve avec chaine ="AB".
Y a un moyen de coder le caractere de fin de chaine ??
Sinon ya pas un moyen plus simple pour remplacer des valeurs
intermediaires, c'est a dire faire en une seule commande chaine [3] =
88 et chaine [4] = 44 sans avoir a recreer une variable et a la copier
avec memcpy
|
|
samedi 21 mai 2005 à 14:53:39 |
Re : Caractere \x00

Matt67
|
Bonjour,
Pas tres bien compris ta question...
Tu veux faire quoi au juste ??? Sois un peu plus explicite, merci.
Matt...
|
|
samedi 21 mai 2005 à 17:49:13 |
Re : Caractere \x00

SnOOpss
|
Ben en fait si je fait chaine = "\x41\x42\x00\x43\x44\" je me retrouve
avec chaine ="ab" a cause du caractere /x00 qui fini la chaine.
Est ce qu il y a un moyen d eviter ca ?
Y aurait il une commande pour changer 5 octet dans une chaine ( en plein millieu) sans utiliser memcpy ?
|
|
dimanche 22 mai 2005 à 11:22:15 |
Re : Caractere \x00

Matt67
|
Bonjour,
ca replace 5 caracteres dans une chaine.
#include <stdio.h>
int main(void)
{
char chaine[] = {"abcdefghijklmno"};
char replace[] = {"12345"};
size_t i;
for(i=0; i < (sizeof(replace) - 1); i++)
chaine[i+5] = replace[i];
printf("%s\n", chaine);
return 0;
}
Mais bon, il y a d'autres façon de faire mais là, je ne vois pas ce que tu veux faire.
Pourquoi ne pas utiliser memcpy ?
Poste un bout de code pour voir exactement.
Matt...
|
|
dimanche 22 mai 2005 à 11:42:24 |
Re : Caractere \x00

SnOOpss
|
J'ai trouvé ca aussi
char s[10]; s = "ABCDEFGHIJ"; strncpy( s+5, "XXXX", 4 );
Mais gros probleme c'est ca char ty[255]; sprintf(ty,"%s","\x61\x62\x00\x61\x62"); strncpy(ty,"\x61\x62\x00\x61\x62",5);
Pas moyen de me retrouver avec ma chaine complete J'ai toujour ty ="ab" a cause du caractere NULL de fin de chaine (le /x00).
|
|
dimanche 22 mai 2005 à 16:02:32 |
Re : Caractere \x00

Matt67
|
Bonjour,
C'est normal, '\0' c'est un caractere de fin de chaîne, tu ne peux pas faire autrement.
Si tu veux que printf("%s", ty) donne abab, il faut que tu enleves le '\0'.
Matt...
|
|
dimanche 22 mai 2005 à 17:05:31 |
Re : Caractere \x00

SnOOpss
|
Mais le prb c'est que je travaille avec des chaines binaire pas des
chaines de caractere donc certaines doivent avec certain octect =
"\0" je ne veut pas quelle me donne "abab" mais vraiment "ab(/0)ab" j
arrive a les copier en faisant
char ty[255];
ty[0]='a';
ty[1]='b';
ty[2]=0;
ty[3] = 'a';
ty[4] = 'b';
char tb[255];
memcpy( tb , ty , 6 );
Mais c'est la partir en rouge que je cherche a optimiser !!
|
|
dimanche 22 mai 2005 à 19:51:10 |
Re : Caractere \x00

Matt67
|
Bonjour,
Je ne vois pas trop ce que tu peux optimisé, mais bon !!!
Tes octets tu les recuperes dans un fichier ?
Matt...
|
|
mardi 24 mai 2005 à 19:03:01 |
Re : Caractere \x00

SnOOpss
|
Plus ou moins en fait je suis en train d ecrire des tag id3 V2 dans des
mp3 et pour chaque tag il me faut ecrire une chaine composé de /x00 et
de donnés diverses comme la longeur de la chaine binaire du tag ou meme
des octets dont je ne voit meme pas l utilité !!
|
|
mardi 31 mai 2005 à 15:13:09 |
Re : Caractere \x00

Dvdmizo
|
salut,
si tu connais le détail des informations à mettre dans ta chaine tu peux peut-être utiliser une union ne faisaint un truc dans ce genre :
#include <stdio.h>
#include <string.h>
int main(void)
{
int i ;
//on definit le format de la structure element par element
struct TOTO
{
unsigned int bidule ;
char texte1[10] ;
char texte2[10] ;
unsigned int blurp ;
unsigned int titi ;
};
//on associe la structure detaillee
//avec une chaine qui va contenir
//la totalite des donnees
union INFOS
{
struct TOTO ma_structure ;
char chaine_globale[sizeof(struct TOTO)] ;
}infos_tag ;
//on affecte des valeurs a chacune des donnees de la structure
infos_tag.ma_structure.bidule = 4501 ;
sprintf(infos_tag.ma_structure.texte1, "abcdefghi") ;
sprintf(infos_tag.ma_structure.texte2, "jklmnopqr") ;
infos_tag.ma_structure.blurp = 0 ;
infos_tag.ma_structure.titi = 65535 ;
// on tente l'affichage avec un printf
printf("resultat printf : \n%s\n\n", infos_tag.chaine_globale) ;
// le resultat n'est pas probant
// alors on essaye caractere par caractere
printf("resultat boucle (caracteres) : \n") ;
for(i=0 ; i < sizeof(struct TOTO) ; i++)
{
printf("%c", infos_tag.chaine_globale[i]) ;
}
// on peut ainsi constater que toutes les donnees
// existent bien dans la chaine
// on en profite pour les afficher par valeur (en hexa)
printf("\n\nresultat boucle (codes) : \n") ;
for(i=0 ; i < sizeof(struct TOTO) ; i++)
{
printf("\\x%02X ", (unsigned char) infos_tag.chaine_globale[i]) ;
}
return 0 ;
}
j'espère que ça t'aidera...
|
|
Cette discussion est classée dans : chaine, caractere, valeurs, exemple, x00
Répondre à ce message
Sujets en rapport avec ce message
lire x caractere dans une chaine (pas tout) [ par gege1024 ]
un exemple vaut mieux qu'un long discour:dans un fichier j'ai ecris une chaine, exemple : 20051023je veux lire cette chaine mais par morceau, c'es
recupere valeurs dans ansistring [ par jerome86600 ]
voila je met des variables dans une ansistring que je separe par un caractere quelquonce. j ennvoie cette chaine de caractere par udp et la recupere.e
ajout chaine dans un fichier apres une autre [ par Bassman ]
je m'explique :) en faite j'ai un fichier avec plusieurs lignes et chaines de caractere et je voudrais rajouter une chaine de caractere apres une aut
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
Inserer un int dans une chaine de caractere sous c++ [ par 0Cypher0 ]
Salut tout le monde, desoler d'etre un boulet, mais j'ai une galere... Je desire (pour passer une requete SQL) inserer une variable int dans une chai
Manipuler une chaine de caractere wxString .................. [ par satellite34 ]
Bonjour,Je développe une application comprenant un wxListCtrl qui est composé de 6 colonnes : nom, type, taille, date, heure et permissions.Vous l' au
Modifier un caractere dans une chaine [ par floche ]
Bonjours à tous Le titre est assez explicite... Je voudrais pouvoir changer un caractere d une chaine si c'est un a mais ca ne marche pas. Merci pour
rechercher chaine de caractere dans texte [ par melkiorlenecrarque ]
Bonjour! Je dois rechercher une chaine de caractere dans un buffer, Quelle est la maniere la plus optimisée, sachant que je programme avec les api wi
decouper une chaine de caractere [ par alahyaneali ]
Bonjour à tous j'ai cherché partout comment decouper une chaine de caractere en C mais je n y arrive pas. Meme en utilisant substring(date, 1, 2) En f
recuperer une chaine de caractere sur le clavier [ par nightclub ]
deja bonjour a tous ! (qqpart je suis sur que cette question existe sur le forum mais j'ai pas trouvé :s ! j'ai pas fait toute les pages non plus :s !
Livres en rapport
|
Derniers Blogs
IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc SHAREPOINT BLOG SITE, PROBLèME D'ARCHIVESSHAREPOINT BLOG SITE, PROBLèME D'ARCHIVES par junarnoalg
Dernièrement, nous avons migré le site
myTIC
vers un nouveau serveur SharePoint 2010. Dans les contenus que nous vouloins récupérer, nous avions un certain nombre de blogs.
Nous avons utilisé les commandes Power...
Cliquez pour lire la suite de l'article par junarnoalg
Forum
RE : SAC A DOS RE : SAC A DOS par hadjkaddour
Cliquez pour lire la suite par hadjkaddour
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|