Bonjour et bienvenue. Dans cette conférence, je veux parler de la conversion
de chaînes, d'autres fonctions de chaîne.
Il est très courant de convertir la casse des caractères, en particulier.
Si vous voulez que votre chaîne soit entièrement en majuscules, heureusement,
il existe une fonction à deux
majuscules qui convertit de minuscules à
majuscules et une fonction à deux minuscules qui convertit
de majuscules à minuscules. Donc minuscule à supérieur, supérieur à inférieur.
Les deux fonctions renvoient soit le caractère converti, soit le même
caractère pour les caractères qui sont déjà dans la casse correcte ou qui ne
sont pas convertibles tels que les caractères de ponctuation si vous ne pouvez pas les convertir.
Voici donc comment vous pouvez convertir une chaîne en majuscules.
Rappelez-vous, ceux-ci sont en fait utilisés
caractère par personnage.
Donc, si vous aviez un tampon qui était un tableau
de caractères, vous devriez parcourir chaque élément du tampon, puis
faire un deux supérieur sur ce caractère.
Nous passons donc ici
par chaque élément de notre tableau de caractères tampon et
nous le passons à la méthode des deux supérieurs.
Et cela va renvoyer un personnage, c'est une majuscule et nous allons l'attribuer à nos buffs d'ici là.
Nous allons le faire jusqu'à ce que nous
atteignions le caractère nul. C'est donc une déclaration à quatre qui n'a qu'une seule ligne.
Cela convertit la chaîne entière en
majuscules de taux de tampon en parcourant la chaîne un caractère à la fois.
La boucle s'arrête lorsqu'elle atteint le caractère de fin de chaîne, la barre oblique inverse zéro.
Le cast du type char est là parce que deux retours supérieurs de type int, qui
est la valeur ASCII et il la convertit simplement.
Et vous feriez la même chose si vous vouliez le convertir en minuscules,
très simple à utiliser les fonctions de conversion de casse.
Vous pouvez donc utiliser la fonction two upper en combinaison avec la fonction strstr pour savoir
si une chaîne se produit dans une autre en ignorant la casse.
Alors regardons cet exemple qui fait exactement cela.
Ici, nous avons deux tableaux de caractères, texte et sous-chaîne.
Le texte est de taille cent, la sous-chaîne est de taille quarante.
Nous demandons à l'utilisateur de saisir une chaîne à rechercher, moins d'une centaine de caractères.
Nous obtenons cela, nous le stockons dans du texte.
Et puis nous entrons la chaîne qu'ils veulent trouver en
utilisant la strstr, puis la sous-chaîne, afin qu'ils entrent une autre sous-chaîne.
Nous imprimons ensuite la première chaîne, puis nous imprimons la deuxième chaîne.
Nous convertissons ensuite les deux chaînes en majuscules.
Et puis nous pouvons en fait dire que la deuxième chaîne a trouvé la première chaîne.
Ainsi, lorsque nous appelons strstr, il
peut ignorer la casse. Parce que rappelez-vous, l'une des limites de strstr était
qu'il était sensible à la casse.
Et donc maintenant, nous pouvons utiliser strstr sur
du texte et des sous-chaînes car ce sont tous des caractères majuscules.
Et encore une fois, c'est un moyen de
savoir si une sous-chaîne est dans une chaîne entière en ignorant la casse.
Tout d'abord, nous convertissons simplement tout en majuscules et maintenant nous comparons les majuscules, et
c'est ce que fait ce programme.
Il est fréquent que vous souhaitiez convertir des chaînes en nombres.
Il y a donc des fonctions spécifiques qui commencent par un a.
Ils sont comme atof, atoi, atol et atoll.
Atoi très courant, convertir une chaîne en un entier.
Donc atof va convertir une chaîne, et
c'est comme ASCII, ASCIItof. Il va convertir une chaîne en un type de données.
Ainsi, un atof est un ASCII à un flottant ou un double à un flottant.
Et vous pouvez avoir certaines valeurs de retour. Si ce n'est pas trouvé ou ne peut pas faire.
Donc, parfois, vous ne pouvez pas convertir des chaînes en nombres entiers, surtout si vous avez une chaîne qui contient juste des mots.
Habituellement, vous utilisez cette fonction lorsque vous l'avez dans l'exemple.
Si vous avez une chaîne de caractères qui a 98. 4, qui peut être représenté par un double.
Vous pouvez donc faire un atof dessus. Si vous avez une chaîne de caractères
de Jason, vous ne pouvez pas la convertir en
un nombre entier flottant, donc rien ne se passera. Ainsi, lorsque vous avez des chaînes de caractères
contenant des nombres, vous pouvez les convertir en utilisant ces fonctions ASCII en.
Et tout cela est inclus dans le fichier d'en-tête standard de la bibliothèque.
Vous verrez également le contraire
pour créer des entiers en chaînes, vous verrez des choses comme itoa, qui est int en ASCII.
Si vous aviez un nombre 98 et que vous voulez le convertir en chaîne, vous diriez itoa.
Il y a aussi quelques nouvelles fonctions.
Ceux-ci sont spécifiquement pour la chaîne à
doubler par opposition à atof.
Vous pouvez utiliser
ces strtod ou strtof ou stringtold.
Et ils se convertissent chacun en flotteurs doubles longs ou doubles flotteurs.
Mais l'un ou l'autre est bien. Les ASCII sont les traditionnels.
Je pense que les autres strtods et strtofs ont été ajoutés dans les normes ultérieures de c.
Voici donc un exemple de conversion.
C'est très, très basique. Ici, nous avons un tableau de caractères
str, 3. 5 espace 2. 5 espace 1. 26.
Nous avons quelques conseils. Et nous traversons jusqu'à
ce que nous sautions, si nous ne pouvons pas le convertir.
Nous disons donc strtod. Nous passons dans notre
adresse de notre ptr, notre pointeur et nous passons dans
notre p string qui est notre chaîne,
3. 5 2. 5.
Maintenant, vous pouvez dire pourquoi vous passez le p str plutôt que simplement le
str et ce n'est pas nécessaire. Mais ici, nous voulons réellement vérifier s'il n'y
a pas eu de conversion.
Donc, comme nous ne vérifions aucune conversion, nous devons examiner les deux pointeurs.
Vous ne pouvez pas comparer le ptr à la str car la str est un tableau.
Nous allons donc utiliser le morceau pstr pour simplement représenter notre tableau de caractères afin de pouvoir comparer.
Et si nous comparons
ces deux, cela signifie que pstr n'a stocké aucune conversion,
et nous avons donc terminé. Nous n'avons pas été en mesure de convertir cette valeur.
Sinon, si nous pouvions convertir la valeur, nous allons simplement l'imprimer et
nous allons ensuite passer à la conversion suivante. Pstar va être égal au pointeur.
Ainsi, vous pouvez exécuter ceci et vous pouvez voir que
cela finira par convertir tout dans le tableau de chaînes en valeurs
spécifiques doubles, doubles valeurs.
J'utilise habituellement atoi, atof, mais l'un
ou l'autre fonctionnera.
Ce sont les fonctions de conversion. Merci.