8
votes

Comment remplir une section dans la chaîne C ++?

avoir une chaîne d'espaces blanchisseurs: xxx pré>

je voudrais Remplir la longueur des caractères à une position. p>

en C, il ressemblerait à p> xxx pré>

Comment puis-je atteindre cette chaîne C ++, j'ai essayé p>

 string& assign( const string& str, size_type index, size_type len );


2 commentaires

Y a-t-il une raison d'allouer de manière dynamique la chaîne dans votre exemple?


@Gman - Je ne les veux pas comme une variable automatique plutôt sur le tas dans le mauvais chemin STRDUP ()


3 Réponses :


1
votes

avec l'un des remplacer (...) méthodes ( Documentation ) Vous pouvez faire tout ce dont vous avez besoin


0 commentaires

9
votes

Premièrement, pour déclarer une chaîne simple, vous n'avez pas besoin de pointeurs:

std::fill( str.begin()+pos, str.begin()+pos+length, '#' );


1 commentaires

COMPILER se plaint toujours - Toute suggestion? Erreur: Conversion invalide de Char 'To Const Char *' Erreur: Initialiser l'argument 3 de `std :: basic_string <_chart, _Traits, _ALLOC> & std :: basique_string <_chart, _Traits, _ALLOC>: : remplacer (typename _ALLOC :: Taille_type, typename _ALLOC :: Taille_type, const _chart *) [avec _chart = char, _traits = std :: Char_traits , _ALLOC = std :: Allocator ] '



13
votes

en plus de chaîne :: Remplacer () Vous pouvez utiliser std :: remplir : xxx

si vous essayez de remplir passé la fin de la chaîne cependant, il sera ignoré.


0 commentaires