2010-12-06 5 views
1

J'ai cette chaîne. et j'ai besoin de trouver le dernier mot de la chaîne (qui est le mot de passe) et le remplacer par des x pour chaque caractère de la chaîne. Comment est-ce que je peux faire ceci avec de simples fonctions de chaîne? Il doit être capable de fonctionner même si le mot de passe contient des caractères et des nombres entiers d'une longueur variable.remplacer le mot de passe dans une chaîne avec x en fonction du nombre de caractères dans le mot de passe

int main() 
{ 
    string data = "Santa Claus 454-90-3424 sclaus password"; 

    cout << data << endl; 
    return 0; 
} 

Je veux que ma sortie à lire: « Père Noël 454-90-3424 sclaus xxxxxxxx »

Répondre

3

Utilisez find_last_of pour trouver lié du dernier mot, puis std::fill à remplir avec des x.

+0

Est-ce trop demander de vous pour taper ceci rapidement? Je suis vraiment nouveau pour les cordes ... (et la programmation en général) c'est ma première classe –

+0

C'est assez rapide. –

+0

Pourquoi ne pas utiliser 'std :: rfind' si un seul caractère est recherché, à la fin? – Benoit

1

Comme je l'ai dit dans votre question précédente, jetez un espace entre les espaces et remplacez le dernier par Xs. Jesus Tap Dansant Christ, n'attends pas de nous que nous fassions tout ton travail.

+0

lol man. Ce n'est même pas classé. J'apprends juste bien par l'exemple. Je vois la symbolique est une chose précieuse, mais il semble être au-delà de mes capacités pour le moment. C'est ma première classe de programmation. –

+0

Regardez ici: http://www.oopweb.com/CPP/Documents/CPPHOWTO/Volume/C++Programming-HOWTO-7.html – neckbeard

0
size_t last_space = data.rfind(" "); 
for(size_t = last_space + 1; pos < data.length(); ++pos) data[pos] = 'x'; 
Questions connexes