Bonjour et bienvenue à nouveau.
Nous sommes dans une nouvelle section.
Dans cette section, nous allons parler de chaînes de caractères.
Vous m'avez probablement entendu dire le mot enchaîne un peu tout au long de la
classe, et vous peut avoir été un peu confus.
Une chaîne n'est en réalité qu'un mot.
C'est quelque chose de fermé entre guillemets.
Nous allons parler de la façon dont nous pouvons stocker des chaînes dans des tableaux de caractères.
Donc jusqu'à ce point, nous sommes assez familier avec un seul caractère, le
type de données char ou le type de données "soins", comme vous le souhaitez pour le prononcer. Nous savons ce que c'est, mais nous n'avons pas vraiment
appris les mots.
Pour attribuer un seul caractère à une variable char, le caractère
est inclus dans un paire de guillemets simples.
Nous connaissons cela.
Nous avons
tout appris à ce sujet. Dans cet exemple, signe plus est égal à plus entre guillemets simples.
La chose importante là-bas est les guillemets simples.
Vous avez également appris que là est une distinction entre les
guillemets simples et les guillemets doubles.
Donc, si vous mettez une variable de signe plus et vous
lui attribuez quelque chose entre guillemets et le signe plus est de type char, cela ne
fonctionnera pas, car vous ne pouvez attribuer qu'un seul caractères au type de données char.
Une constante de chaîne ou un littéral de chaîne est une séquence de caractères ou de symboles entre
une paire de guillemets doubles.
Alors maintenant, les guillemets doubles sont va venir une nouvelle pièce.
N'importe quoi entre ces doubles quotes est interprétée par le
compilateur comme une chaîne.
Et si vraiment ça peut être caractères alphanumériques, il peut s'agir de
caractères spéciaux mais ils composent généralement des mots que vous pouvez en quelque sorte
considérer comme du texte.
Vous pouvez avoir des espaces.
Mais n'importe quoi en double quotes est une chaîne littérale.
Chaque fois que vous avez affiché un message utilisant
la fonction printf, nous avons défini le message sous forme de constante de chaîne.
Rappelez-vous printf, le premier argument nous y mettons du texte et nous avons
quelques spécificateurs de format.
C'est une consonne de corde.
Vous entendez également le terme chaîne littéralement, c'est la même chose.
Donc nous disons print f c'est une chaîne tout ce qui se trouve
entre ces guillemets est une constante de chaîne et nous pouvons le mettre sur une ou deux lignes.
Vous remarquez également que vous pouvez ont des instructions d'impression
qui ont des séquences d'échappement antislash n. À présent ce troisième est vraiment cool ce que je vais
vous expliquer dans une seconde.
Mais le point principal est que vous avez pour
comprendre la différence entre les guillemets simples et doubles citations et ce qu'il y a à l'intérieur.
Avec les guillemets doubles, vous avez des cordes.
Avec les guillemets simples, vous avez des personnages.
Il existe deux types de constantes.
Pour ce troisième exemple, ce printf où nous avons les quatre et ensuite nous avons
une barre oblique inverse puis un guillemet simple.
Si vous voulez réellement afficher un guillemet simple
en sortie, vous devez l'échapper.
Et tu peux t'échapper spéciale caractères en utilisant la barre oblique inverse.
Donc dans le troisième exemple, c'est va
en fait imprimer quatre doubles citations que vous écrivez, puis un autre guillemet double.
Ainsi, le compilateur interprète un explicite guillemet double sans barre oblique inverse
comme délimiteur de chaîne.
Chaque fois que vous utilisez un double cite le début et la fin d'une chaîne mais
que se passe-t-il si vous le souhaitez l'afficher, vous devez simplement mettre la
barre oblique inverse devant lui.
Et ça dira au compilateur hey ça ne termine pas réellement la chaîne.
C'est quelque chose que nous voulons à afficher ou quelque chose
que nous voulons utiliser comme ce caractère.
Vous devez aussi utiliser l'évasion si vous souhaitez également utiliser
la barre oblique inverse, car le la barre oblique inverse est une séquence d'échappement.
Alors quand tu vois la barre oblique inverse barre oblique inverse, vous affichez en fait
cette barre oblique inverse dans une fonction printf.
Si vous le voyez ailleurs, vous affectez la barre oblique inverse à une
variable ou la manière dont elle est utilisée.
Mais une contre-oblique elle-même a suivi par une autre barre oblique inverse échappera la chaîne
de barre oblique inverse.
Et encore une fois, une barre oblique inverse et une chaîne signale
toujours le début d'une séquence d'échappement.
Donc, un seul est ne va pas afficher.
Ce sont des caractères spéciaux.
Alors quand vous êtes entre guillemets, vous pouvez voir les barres obliques inverses pour
échapper aux caractères spéciaux et même la barre oblique inverse elle-même.
Voici comment la chaîne est en mémoire.
Une chaîne en mémoire est chaque caractère unique est
représenté par un bit ici.
Et donc si vous avez une chaîne appelé ceci est une chaîne, vous allez le voir
où le l'espace a quelque chose en mémoire.
Et aussi vous devriez remarquer à la fin de la barre oblique inverse zéro qui
est le terminateur nul dont nous allons parler.
Mais pour la deuxième corde, encore une fois, vous voyez tout ce qui est en mémoire.
Même la barre oblique inverse n qui représente une nouvelle ligne est en mémoire.
Et puis pour toi, tu notez que la citation est en mémoire.
Mais la barre oblique inverse ne l'est pas.
Parce que la barre oblique inverse délimite la citation.
Cela échappe à la citation.
Voilà donc à quoi cela ressemble en mémoire.
Vous devriez remarquer que la chaîne en mémoire a toujours au moins un octet de
plus pour cette barre oblique inverse zéro, qui est le caractère nul.
Ressemble également au diagramme sur le fond est incorrect.
Vous remarquerez que le "vous" n'est pas affiché ici donc après la double citation, vous ne voyez pas
le vous là-bas. Le tu devrais être là quelque part
et cela s'applique en quelque sorte, c'est là quelque part, ils sont vraiment il suffit de le
montrer que ce sont les valeurs ASCII ci-dessous et donc c'est juste montrer-ne pas le montrer, mais vous
seriez juste avant la droite.
Et c'est de ça que je veux parler about est ce caractère nul.
C'est un personnage spécial avec la valeur de code zéro.
Il est ajouté à la fin de chaque chaîne afin que le compilateur
sache où il se termine et aussi quand vous l'exécutez.
Ce personnage est connu sous le nom de le caractère nul, et
vous ne mettez pas simplement un zéro dedans vous pouvez mettre une barre oblique inverse zéro.
Et c'est ce qu'il y avait là-dedans diapositive précédente à la toute fin.
Et ça pourrait être n'importe où en fait en mémoire.
Et selon l'endroit où il se trouve mémoire, une fonction va aller chercher
jusqu'à ce qu'elle voit que antislash zéro et il peut l'afficher ou peut le manipuler si
vous êtes en utilisant différentes fonctions de chaîne.
C'est très important ce caractère nul.
Une chaîne est toujours terminée par un caractère nul.
Donc, la longueur d'une chaîne est toujours un supérieur au nombre de
caractères de la chaîne.
Cela va devenir très important lorsque nous utilisons des tableaux de caractères et que
nous spécifions la taille du array la taille du tableau devra toujours être un de plus
que la façon dont de nombreux caractères que vous souhaitez stocker à
cause de ce caractère nul.
Nous avons également un concept de null dont nous n'avons pas
vraiment parlé en détail.
Il entre généralement en jeu quand on
parle de pointeurs, mais ne confondez pas le nul caractère avec le mot-clé nul.
Il y a donc un mot-clé nul dans l'un des les en-têtes d'inclusion que vous pouvez utiliser.
Et c'est un symbole qui représente une adresse mémoire qui
ne fait référence à rien.
Alors tu l'utilises quand tu lorsque vous utilisez des pointeurs.
Un caractère nul est juste un terminateur de chaîne.
Nous parlerons plus de null quand nous parlez de pointeurs mais assurez-vous de bien
comprendre la distinction entre le caractère nul et le mot clé nul.
Vous pouvez ajouter une barre oblique inverse zéro à la fin d'une
chaîne explicitement et cela créera deux chaînes et Je vais vous montrer comment faire cela lorsque nous
parlerons de définir des tableaux de caractères.
Voici un exemple avec le terminateur nul.
Nous avons une empreinte ici, et nous disons le caractère puis la barre oblique
inverse zéro qui termine une chaîne.
Alors, ce qui va se passer, c'est si vous compilez
et exécutez ce programme, la sortie que vous
allez obtenir est la première ligne sera le caractère, puis la barre oblique inverse o il va y avoir un ça va y mettre
fin et seulement la première partie de la chaîne va être affichée.
Il n'y en aura plus sortie parce que print pense que c'est la
fin de la chaîne.
Donc, il imprime simplement le personnage.
La sortie va se terminer après ces deux premiers mots car la
fonction cesse de sortir une fois il atteint le caractère nul.
Donc, la deuxième barre oblique inverse zéro fin de la chaîne, donc même si vous ne voyez
pas de barre oblique inverse zéro ici juste avant le guillemet double de
fin, juste après le point de chaîne, il y en a toujours un là-bas, mais
vous ne l'avez jamais atteint.
Il y a donc un terminateur nul implicite à la fin de la chaîne et le printf
pour qu'il sache où se terminer.
Et si vous en ajoutez un autre, c'est seulement va afficher jusqu'à ce premier.
Donc, le premier terminateur nul qui est trouvé dans la série de caractères
marque toujours la fin de la chaîne.
Alors comprenez ces caractères nuls.
C'était juste un bref aperçu pour décrire ce qu'est
une chaîne et comprendre que les chaînes sont entre guillemets.
Et je veux aussi décrire le caractère nul.
Dans la prochaine conférence, nous comprendre ce que sont les
chaînes de caractères en termes de création ces différents ce type
de variable pour stocker des chaînes.
Merci.