J'ai un tableau de chaînes de numéros de téléphone, et je dois insérer des traits d'union dans eux. quelle fonction de chaîne dois-je utiliser, et comment? merci. : Dinsérer un trait d'union dans une chaîne C++
Répondre
Utilisez les fonctions de chaîne STL. Itérer sur le tableau de chaînes, et pour chaque chaîne, faites ceci:
str_num = str_num.substr(0,3) + "-" + str_num.substr(3,3) + "-" + str_num.substr(6,4);
EDIT: Vous pouvez utiliser insert()
aussi, je pense que ce serait une meilleure façon.
Non. Vous concaténez. – wilhelmtell
C'est vraiment inefficace, cela fait plusieurs copies inutiles de la chaîne. –
Merci beaucoup! ça a fonctionné parfaitement. : D – user212463
Eh bien, je ne vais pas donner la réponse, mais la chose la plus simple à faire est d'utiliser la méthode std::string::insert
, en supposant que vous faites C++.
Pour les chaînes C, vous devrez copier manuellement les caractères. J'utiliserais probablement sprintf
.
strncat serait la fonction de chaîne de style C la plus utile. –
Vous auriez besoin d'au moins trois appels distincts à 'strcat' ou similaire, ou vous pourriez faire quelque chose comme' sprintf (buf, "% .3s -% .3s -% .4s", s, s + 3, s + 6) '. Juste une question de style, vraiment. –
Vous pouvez utiliser la fonction strtok
pour la diviser en jetons.
char * strtok (char * str, const char * delimiters);
Vous ne pouvez pas diviser un sans délimiteur. Où est le délimiteur dans un nombre à 10 chiffres pour le diviser en chiffres (3,3,4)? –
@Joy Dutta Je suis d'accord, mais quand j'ai posté la réponse quelque chose d'autre était dans mon esprit. Maintenant j'aurais utilisé des itérateurs. – Secko
Qu'est-ce que vous voulez est d'ajouter deux caractères à chaque chaîne, dans deux positions spécifiques.
Créez une fonction qui prend une chaîne de numéro de téléphone unique et ajoute les tirets le cas échéant. C'est un bon exemple où il est facile d'utiliser la concaténation de chaînes, mais c'est une mauvaise habitude. Au lieu de cela, vous pouvez utiliser string::insert()
pour placer les traits d'union le cas échéant. Une fois cette fonction simple écrite, il suffit de parcourir la matrice et d'appliquer la fonction sur chaque élément. Par coïncidence, la fonction for_each()
peut faire exactement cela. Vous le trouverez dans <algorithm>
.
#include<string>
#include<algorithm>
void with_hyphens(string& phone)
{
// as explained above
}
// ...
{
for_each(array, array + ARRAY_LENGTH, &with_hyphens);
}
- 1. Insérer une chaîne dans une autre chaîne
- 2. Insérer une chaîne dans une chaîne avec un index
- 3. Comment insérer une chaîne dans un rectangle?
- 4. Comment insérer une chaîne dans sqlite3 dans c
- 5. comment ajouter un trait d'union entre une chaîne
- 6. Objective-C: Insérer une chaîne dans une autre chaîne dans une certaine plage
- 7. Comment insérer guillemet dans une chaîne containg variables C#
- 8. Comment insérer une chaîne dans une autre chaîne?
- 9. Insérer une chaîne dans un RegExp existant en Javascript?
- 10. Comment insérer une chaîne dans un fichier en Python?
- 11. Insérer une chaîne XML dans un document openXML
- 12. Insérer une chaîne après un certain caractère dans Ruby
- 13. Comment rechercher efficacement une chaîne et insérer en C#
- 14. Comment puis-je scinder cette chaîne avec un trait d'union?
- 15. Insérer une chaîne dans une chaîne donnée à un index donné en Python
- 16. Comment puis-je insérer une chaîne dans une commande popen() dans C?
- 17. Comment insérer une variable de script dans une chaîne regex?
- 18. Incrémenter un nombre dans une chaîne (C#)
- 19. Smalltalk, comment insérer une tabulation dans une chaîne
- 20. Comment insérer une chaîne dans une balise de police vide?
- 21. Comment insérer une table HTML dans un contrôle WebBrowser C#
- 22. C++ insérer dans un vecteur à une position connue
- 23. vim + C++: insérer un UUID dans une clause de garde
- 24. Insérer une chaîne entre deux marqueurs
- 25. Map.connect avec un trait d'union dans l'URL
- 26. Insérez une chaîne à une chaîne en Objective C
- 27. insérer des valeurs de variables dans une chaîne en python
- 28. Comment puis-je grep pour une chaîne qui commence par un tiret/trait d'union?
- 29. Comment insérer des données dans une chaîne d'AppleScript
- 30. Insérer dynamiquement une chaîne HTML dans le HEAD d'un document
Est-ce une question de devoirs? Où voulez-vous avoir le trait d'union? Donnez un exemple de numéro de téléphone d'entrée et son numéro de téléphone de sortie correspondant. – wilhelmtell
Vos chaînes sont-elles des 'std :: string' instances, ou' char * 's? –
oui, c'est une tâche de devoirs 3823920578 = 382-392-0578 – user212463