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

  FORUM HardWare.fr
  Programmation
  C

  caractère final d'une chaine

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

caractère final d'une chaine

n°1122388
maerlin666
Posté le 16-06-2005 à 18:38:34  profilanswer
 

'jour a tous,
 
je voulais savoir a quoi correspondent les caractères tels que '\r' ou '\n' en fin de string et surtout a quoi  ils correspondent en hexadecimale ou en binaire.
 
Est il possible de les reproduire grace au clavier, si oui comment ?
 
merci de votre aide

mood
Publicité
Posté le 16-06-2005 à 18:38:34  profilanswer
 

n°1122397
Emmanuel D​elahaye
C is a sharp tool
Posté le 16-06-2005 à 18:48:40  profilanswer
 

maerlin666 a écrit :

je voulais savoir a quoi correspondent les caractères tels que '\r' ou '\n' en fin de string


Comme l'indique ton livre de C, '\n' est le caractère de fin de ligne et '\r' est le caractère de retour en début de ligne. A noter que le plus souvent, le caractère '\n' provoque le retour en début de ligne et l'avance d'une ligne.

Citation :

et surtout a quoi  ils correspondent en hexadecimale ou en binaire.


Et en décimal ou en octal, ça ira ?
 
'\n' correspond en ASCII à la fonction LF (Line Feed) de valeur 10
'\r' correspond en ASCII à la fonction CR (Carriage Return) de valeur 13
 

Citation :

Est il possible de les reproduire grace au clavier, si oui comment ?


C'est pas évident. En général <enter> génère '\n' et ctrl-enter génère '\r', mais ça peut changer d'une machine à l'autre ou d'un système à l'autre.
 


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
n°1122419
Taz
bisounours-codeur
Posté le 16-06-2005 à 19:05:09  profilanswer
 

pourquoi tu dis pas tout simplement que la valeur entière d'\n' est (int)'\n' ?

n°1122422
Emmanuel D​elahaye
C is a sharp tool
Posté le 16-06-2005 à 19:08:33  profilanswer
 

Taz a écrit :

pourquoi tu dis pas tout simplement que la valeur entière d'\n' est (int)'\n' ?


Parce que le cast est inutile vu qu'une constante caractère est déjà un int (en C, pas en C++)


Message édité par Emmanuel Delahaye le 16-06-2005 à 19:08:48

---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
n°1122496
Taz
bisounours-codeur
Posté le 16-06-2005 à 20:24:38  profilanswer
 

oui, mais tout le monde comprends pas que la valeur de '\n' c'est '\n' :)
 
je me suis mal exprimé

n°1122713
Sve@r
Posté le 17-06-2005 à 09:21:18  profilanswer
 

Taz a écrit :

oui, mais tout le monde comprends pas que la valeur de '\n' c'est '\n' :)
 
je me suis mal exprimé


 
C'est pas évident, pour un débutant, d'assimiler qu'un caractère est déjà un nombre qu'on peut utiliser tel quel  ;)  
=> 'a' + 1 = 'b'
=> '9' - '0' = 9


Message édité par Sve@r le 17-06-2005 à 09:22:23
n°1122719
Taz
bisounours-codeur
Posté le 17-06-2005 à 09:26:27  profilanswer
 

on peut mais est-ce portable ?

n°1122724
Emmanuel D​elahaye
C is a sharp tool
Posté le 17-06-2005 à 09:29:54  profilanswer
 

Taz a écrit :

on peut mais est-ce portable ?


 

Citation :

=> 'a' + 1 = 'b'


Non.

Citation :

=> '9' - '0' = 9


Oui.


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
n°1122736
Elmoricq
Modérateur
Posté le 17-06-2005 à 09:35:41  profilanswer
 

Emmanuel Delahaye a écrit :

Citation :

=> 'a' + 1 = 'b'


Non.


 
Ah ?  
Pourquoi ?


Message édité par Elmoricq le 17-06-2005 à 09:36:00
n°1122748
Emmanuel D​elahaye
C is a sharp tool
Posté le 17-06-2005 à 09:47:50  profilanswer
 

Elmoricq a écrit :

Ah ?  
Pourquoi ?


Parce que le langage C ne garanti pas que le charset soit ASCII. En EBCDIC, les valeurs des caractères alphanumériques ne sont pas toutes consécutives.
 
http://www.natural-innovations.com [...] bcdic.html
 


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
mood
Publicité
Posté le 17-06-2005 à 09:47:50  profilanswer
 

n°1122753
Taz
bisounours-codeur
Posté le 17-06-2005 à 09:49:28  profilanswer
 

Emmanuel Delahaye a écrit :

Parce que le langage C ne garanti pas que le charset soit ASCII. En EBCDIC, les valeurs des caractères alphanumériques ne sont pas toutes consécutives.
 
http://www.natural-innovations.com [...] bcdic.html

mais est-ce que c'est surréaliste d'imaginer d'autres jeu de caractères ?

n°1122756
Emmanuel D​elahaye
C is a sharp tool
Posté le 17-06-2005 à 09:51:07  profilanswer
 

Taz a écrit :

mais est-ce que c'est surréaliste d'imaginer d'autres jeu de caractères ?


Unicode ? é+1, ça fait quoi ? f' ?
 
Sinon EBCDIC est d'usage sur mainframe IBM (AS-400 etc.)


Message édité par Emmanuel Delahaye le 17-06-2005 à 09:52:59

---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
n°1122791
Taz
bisounours-codeur
Posté le 17-06-2005 à 10:04:49  profilanswer
 

Emmanuel Delahaye a écrit :

Unicode ? é+1, ça fait quoi ? f' ?
 
Sinon EBCDIC est d'usage sur mainframe IBM (AS-400 etc.)


oui, je pense exactement ça genre de chose. d'ailleurs strtod et ses amis sont dépendants des locales ce qui conduit souvent au massacre.

n°1122803
Elmoricq
Modérateur
Posté le 17-06-2005 à 10:11:52  profilanswer
 

Je viens d'aller voir le lien donné par Emmanuel.  
EBCDIC c'est clairement une table de malade, s'il n'y avait ce semblant de logique j'aurais pu croire qu'ils ont joué à boggle en concevant ça.
Enfin, y avait surement de bonnes raisons derrière, j'imagine.


Message édité par Elmoricq le 17-06-2005 à 10:12:02
n°1123506
matafan
Posté le 17-06-2005 à 17:11:42  profilanswer
 

La raison c'est que c'etait fait pour les cartes perforees :
http://www.cs.uiowa.edu/~jones/cards/codes.html

n°1123517
Elmoricq
Modérateur
Posté le 17-06-2005 à 17:24:48  profilanswer
 

Je ne suis pas étonné, je pensais à quelque chose dans ce goût-là quand j'ai vu les groupements de lettres.
Ca n'en reste pas moins une table de malade   :o

n°1123787
el muchach​o
Comfortably Numb
Posté le 18-06-2005 à 08:56:57  profilanswer
 

matafan a écrit :

La raison c'est que c'etait fait pour les cartes perforees :
http://www.cs.uiowa.edu/~jones/cards/codes.html


Bon, on peut présumer que les codes qu'on développe aujourd'hui n'ont pas besoin d'assurer la compatibilité ascendante pour les systèmes à carts perforées, je suppose :o
Sinon, je viens d'apprendre un truc là (même si naturelement, je sens bien qu'il vaut mieux éviter de faire des trucs moches comme les "soustractins de caractères" ).


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

  caractère final d'une chaine

 

Sujets relatifs
Traduire un caractère en hexaconversion de caractère en date sous SQL server
[MySQL] WHERE avec sous-chaîneremplacer une chaine de caractère dans un fichier
Effecer caractere fichier texteCaractère d'échappement Qt
comparer pour savoir si une String est différent d'une chaine[PHP] Supprimer mot de 3 caractères maxi dans une chaine - RESOLU
ouverture d'un fichier à partir dune chaine de caractere 
Plus de sujets relatifs à : caractère final d'une chaine


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