Classes cordes et wstring. partie 5




c ++ débutants, classe string, classe wstring, La STL de контейнеры C , Standard Template Library, c ++ conteneurLa classe de chaîne bibliothèque standard de C est bien connue et utiliser facilement. Mais pas tout le monde et ne pas penser toujours sur le fait, la classe chaîne, avec quelques différences dans les détails - ce qui est le vecteur de conteneur: vecteur<carboniser> . vérité, Il a complété certaines fonctionnalités (mais ce code et vous serez capable d'écrire):

  • méthode Taille() zadublirovan par longueur(). Ils sont complètement identiques, pour des raisons de commodité. Juste pour avoir une longueur de ligne plus naturelle, quelle taille;

  • opérateurs surchargés définies +, += que le retour concaténation (union) temps;

  • certainement concepteur, initialise chaîne lorsque vous créez la valeur initiale de la chaîne de caractères dans le format ASCIIZ (carboniser* - Un pointeur sur un tableau de caractères en fin de style C à zéro);

  • certaine méthode c_str(), qui renvoie un pointeur sur le contenu interne de la chaîne dans le format ASCIIZ. Puisque tel est le sens intérieur, il peut être utilisé, mais ne pas essayer de le changer. Ce ne sera pas bien finir.

Dans tous se comportent exactement de la même ligne que le reste de la vecteur, et qui leur sont applicables toutes les opérations sur les vecteurs. entente, qui est une classe chaîne (vecteur<carboniser>) peut se permettre de créer un certain nombre d'effets inattendus. par exemple, parce que le caractère nul n'est pas vecteur<carboniser> pas de signification particulière (Contrairement à la ligne C), alors il est également tout à fait possible de « pousser » à la fin chaîne. Ainsi, il peut être placé dans une seule variable chaîne toute une série de C-cordes, ou même l'ensemble du texte.

voici, comment mettre de la même manière tous variables d'environnement (Environnement) le système d'exploitation un variable chaîne:

note: Ici, nous avons utilisé l'un des plus permis forme les principales fonctions du programme Principal() – 3-m paramètre qui est un tableau de pointeurs cordes (carboniser*) variables d'environnement (Environnement). Un signe de la fin d'un tableau de chaînes envp Il est un pointeur NUL (ceux. Documentation du système d'exploitation).

résultat:classe string, classe wstrting, La STL de контейнеры C , Standard Template Library, c ++ conteneur

Qu'en est-il du type de wstring? wstring - L'équivalent de vecteur<wchar_t> , vecteur "large", caractères localisés, représentant l'encodage de caractère international Unicode. Analyse des contenus (recherche, sélection de mots, les sauts de ligne, etc.) Russophones ou toute autre ligne (exemple chinois) Elle ne peut se faire sous la forme wtring (pas chaîne). Il est nécessaire d'effectuer une pré-définir les paramètres régionaux correct pour le programme (la localisation par défaut “C” Elle suppose que les caractères ASCII dans la représentation 7-bit). Pour IO wstring cours d'eau offertes, respectivement WCIN et wcout, au lieu de gin et cout, destiné à chaîne. Il est écrit comme un rappel.

A titre d'illustration, considérons une analyse de chaîne localisée wstring sur le thème de, que ce soit un palindrome.

Les espaces et la ponctuation sont ignorés pour les comparaisons:

La lettre L à l'avant d'une constante de caractère, que la ligne contient plus , écrit un caractère large wchar_t

résultat:classe string, classe wstrting, La STL de контейнеры C , Standard Template Library, c ++ conteneur

Localisation - c'est un sujet complètement différent, qui nous mènera loin de notre thème principal. Discussion de la localisation et caractères larges en C / C ++ peut être lire ici.

sûrement, cette partie est pertinent de noter les faits suivants, relatives à tous les types de conteneurs STL. Lorsque vous créez un constructeur de conteneurs sans paramètres, crée un conteneur vide, Plus ne contenant aucun élément (blanc pour l'avenir remplir le récipient). La taille du récipient (méthode Taille(), ou longueur() pour la période) zéro. Mais plus efficace, en termes de performances, L'inspection des conteneurs pour la méthode à vide vide(), qui est présent dans tous les types de contenants.

Bulletin de nouvelles leçons sur la programmation:

Classes cordes et wstring. partie 5
4.3 (86.67%) 3 votes

Sur huile

une expérience pratique sur le développement de logiciels 40 ans. société de logiciels internationale Global Teacher Logic. IBM Developer Works auteur permanent des publications. éditeur scientifique de l'ordinateur littérature maison d'édition "Symbole-Plus", Saint-Pétersbourg.

5 réflexions sur "Classes cordes et wstring. partie 5

  1. Merci à l'auteur de l'article.
    Mais j'ai une question – pourquoi ne pas signer un opérateur conditionnel accolades? Ce n'est pas très lisible. par exemple:

    environ:

    Le deuxième mode de réalisation est particulièrement claire…

    1. donc, que la question du formatage du code – une question de goût, préférences, et il y a beaucoup à cet égard différent avis.

      P.S. jeune duracho (comme Habrahabr) appelle fièrement kodestayl et faire ce fétiche, fin en soi. Mais le code n'est pas écrit pour le plaisir esthétique (comment placer entre parenthèses plus jolie), mais pour, de sorte que parfaitement Je travaillais. mais cette, que ingénierie spécialité, plutôt que le plaisir esthétique, ces dernières années 10 en quelque sorte avoir oublié.

      1. Tout fou peut écrire du code, friendly ordinateur. Un bon programmeur écrit le code, humain lisible.
        – Martin Fowler

        vous voyez… Si vous écrivez du code pour ordinateur, pour atteindre leurs propres objectifs et leur propre satisfaction – s'il vous plaît, personne ne s'arrête, et ne rien dire contre vous, mais pour une raison quelconque cela pour moi, et les gens doivent voir le code promo, lire…
        Récemment, la lecture des gens et le code de compréhension écrite joue un rôle clé dans l'écriture des systèmes logiciels, les gens changent, et de développer le produit, vous devez continuer à, même si bien sûr, comme je l'ai déjà dit, cela ne vaut pas si vous écrivez du code que dans votre projet sur lequel aucun autre personnes travaillent.

        p / s:
        dans cette situation, vraiment une question de goût ou ne pas mettre entre parenthèses, Je n'écris au sujet de votre réponse.

      2. Dmitry, Je répète … pour une meilleure digestibilité: là plusieurs différents styles de formatage de code C / C ++. Et aucun d'entre eux ne sont pas mieux ni pire que le reste.
        J'ai travaillé dans plusieurs sociétés de logiciels razrabotcheskih, qui avait complètement différent besoins de l'entreprise (kodestayl). Donc, vous devez choisir le style, qui est utilisé dans le projet en cours.

Laisser un commentaire

Votre adresse email ne sera pas publiée. les champs requis sont indiqués *