0
votes

'\ 0' au milieu d'une chaîne peut être reconnu comme la fin d'une chaîne en C?

Je sais en C '\ 0' est toujours à la fin d'une chaîne, mais est '\ 0' marquez toujours la fin d'une chaîne?

Tout comme "1230123" peut être reconnu comme "123"?

une édition de la question a utilisé la notation '/ 0' au lieu de '\ 0' . .


3 commentaires

Ce n'est pas '/ 0' mais '\ 0'.


\ 0 n'est pas le même caractère que 0 .


Définition de chaîne dans G4G : Les chaînes sont définies comme une éventail de caractères. La différence entre une matrice de caractères et une chaîne est la chaîne est terminée avec un caractère spécial \ 0 . Il y a un caractère de terminaison supplémentaire qui est le caractère NULL \ 0 utilisé pour indiquer la terminaison de la chaîne qui diffère des chaînes de matrices de caractères normales.


3 Réponses :


2
votes

Un octet avec la valeur 0 par définition marque la fin d'une chaîne. Donc, si vous aviez quelque chose comme ceci: xxx

il imprimerait abc .

Ceci est différent de "1230123" où le 4ème caractère de la chaîne n'est pas la valeur 0 mais le caractère '0' , qui a un code ASCII de 48.


2 commentaires

Bonne réponse, et je suggère d'ajouter lien à ASCII Table illustrant \ 0 en tant que code ASCII de NULL et 48 en tant que code ASCII de 0 .


@Esmaele, mais il est peu probable que, lorsque tout utilisateur exécute le programme, le programme aura la locale des fonctions de chaîne de la bibliothèque Standard C est définie sur ASCII. Les programmes qui dépendent des caractères ayant des codes de caractères spécifiques (autres que 0) sont, à savoir la placer gentiment - «trop spécifique».



2
votes

Le caractère de terminaison NULL est représenté comme \ 0 code> et non / 0 code> et il marquait toujours l'extrémité de la chaîne car, dans C, Strings sont en réalité un- Gamme dimensionnelle de caractères terminés par un caractère null fort> \ 0 code>.

Ceci p> xxx pré>

est identique à celui de cette p>

1230123
123      <======= The characters after null terminating character is not printed.


0 commentaires

0
votes

a littéral peut avoir un '\ 0' au milieu.

a string n'a qu'un ' \ 0 ' à la fin.

' \ 0 ' est le caractère _null_and a une valeur de 0. ' 0 ' est le caractère zéro.
Voir valeur de '\ 0' est la même ... 0?


c a , dans le cadre de la langue, littéraux string .

Les deux littoraux ci-dessous ont une taille de 8: 7 vous voyez plus le 1 non Fonction explicitement codée caractère null '\ 0' . xxx

c, dans le cadre de la bibliothèque standard, définit un string .

a string est une séquence contiguë de caractères terminée par et incluant le premier caractère null.

Beaucoup str ... () fonctionne uniquement avec les données jusqu'à la première caractère null . xxx < / pré>


0 commentaires