Maison > développement back-end > C++ > Comment puis-je supprimer efficacement les espaces des chaînes C ?

Comment puis-je supprimer efficacement les espaces des chaînes C ?

Barbara Streisand
Libérer: 2024-12-13 08:34:09
original
556 Les gens l'ont consulté

How Can I Efficiently Remove Spaces from C   Strings?

Suppression efficace des espaces des chaînes C

La suppression des espaces des chaînes C est une tâche courante pour la manipulation de chaînes. Bien qu'il soit possible de parcourir les caractères manuellement, il existe une approche plus efficace.

La méthode préférée implique le puissant algorithme de bibliothèque standard remove_if et le prédicat isspace. remove_if élimine les éléments d'une séquence en fonction d'une condition spécifiée, tandis que isspace vérifie les caractères d'espacement.

Pour utiliser cela, vous pouvez appeler :

1

remove_if(str.begin(), str.end(), isspace);

Copier après la connexion

Cette opération à elle seule ne modifie pas le la longueur de la chaîne mais réorganise les éléments en conséquence. Pour ajuster la longueur, nous utilisons string::erase:

1

str.erase(remove_if(str.begin(), str.end(), isspace), str.end());

Copier après la connexion

remove_if évite plusieurs copies de données, ce qui le rend très efficace. Voici une implémentation simplifiée :

1

2

3

4

5

6

7

8

9

template<typename T, typename P>

T remove_if(T beg, T end, P pred)

{

    T dest = beg;

    for (T itr = beg;itr != end; ++itr)

        if (!pred(*itr))

            *(dest++) = *itr;

    return dest;

}

Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal