S'il vous plaît mettre en œuvre une fonction, remplacer chaque espace dans la chaîne est à « 20% ».
[ Exemple 1 ]
Entrée: s = "Nous sommes heureux. "
Sortie: "Nous% 20are% 20happy. "
[ Limite ]
Longueur 0 <= s de <= 10000
[Idées de résolution de problèmes]
Solution classe {
public:
replaceSpace chaîne (string s) {
chaîne s2;
pour (auto c: s) {
if (! s [i] = » « )
s2 + = s [i];
autre
s2 + = "% 20";
}
Retour s2;
}
};
[ Note]
1. C ++ le problème guillemets simples et doubles.
Il est un seul caractère de citation, chaîne entre guillemets est
un caractère unique entre guillemets représentent en fait un entier.
Chaîne entre guillemets doubles, il est représentatif d'un pointeur sur un tableau de caractère de départ inconnue. Le tableau est guillemets doubles entre les caractères et un zéro binaire supplémentaire « \ 0 » initialisation.
la différence entre « a » et « a », l'ancien est une chaîne qui est un personnage.
En fait "a" est "un \ 0", le '\ 0' end. Le « a » ce seul représente un caractère.
La chaîne peut être « ABCDE » une combinaison de ces multiples personnages représentent, mais « ABCDE » cela est faux! ! !
En résumé, généralement une seule chaîne de caractères est combiné avec les caractères, la pluralité de caractères ~
2. A propos de (auto c: s) du texte.
norme C11 format spécial peut être effectué dans une boucle, à l'exception que le type de référence peut être modifié à la valeur d'origine
-------------------------------------------------- ------------
Auto: permet de déclarer une variable automatique. Il est un identificateur de type de stockage, que la variable (auto) ayant une portée locale, rang bloquer déclaration des variables (par exemple, pour la déclaration de variable de corps de la boucle) est le type de stockage par défaut automatique. En fait, les variables des états déclaratifs les plus ordinaires sont des variables d'automobiles, ils ne ont pas besoin de spécifier explicitement le mot - clé automatique, la valeur par défaut est l'auto. variables automatiques sont hors de portée deviennent automatiquement libérées, le débordement de mémoire (sauf classe contient un pointeur) ne se produit pas. L'avantage d'utiliser des variables automatiques n'est pas nécessaire d'examiner si la variable d'aller est libérée, relativement sûre.
nouveau: nouveau mot - clé est utilisé dans l'adresse de mémoire de tas d'application, il a produit la variable ne libère pas automatiquement, à moins de suppression version manuelle, ou à la fin du programme lorsqu'il est libéré par le système d'exploitation, les avantages de l' utilisation nouvelle utilisation de la mémoire est plus souple, la théorie peut demander un bloc de mémoire de taille lorsque (le système d'exploitation réelle dépendant), mais elle est sujette à des problèmes, oublier accidentellement de libérer l'objet, l'objet est particulièrement fréquent dans l'appel de fonction créée en oubliant de libérer, il produira un dépassement de mémoire , ce qui conduit à une erreur de programme sérieux, plantage du système. nouvelles sont généralement utilisés dans une définition de classe, la combinaison peut supprimer la classe contient de nouveaux objets en est également livré avec fonction variable, héritée ainsi les avantages des deux approches.
-------------------------------------------------- ------------
en plus, le dernier C ++ touches standard de la fonction de mise à jour automatique en plus du sens original, mais ajoute aussi un langage de haut niveau similaire à d' autres types n'utilisent pas automatiquement aux propriétés DEDUCE au lieu d'un type variable, la prémisse est initialisé explicitement initialisé type de variable, vous pouvez utiliser le mot - clé auto tels que int i = 10; auto a = i; // ceci est un type int en utilisant une partie de cette classe de modèle, pour réduire le code verbeux est également utile
-------------------------------------------------- ------------- une
autre digression: auto type correspondant au lieu d'utiliser la nouvelle sur des variables, ni variable statique
variable statique est la fin du programme quand il libère l'objet, mais il n'a pas besoin de manuel libérer.
Lorsque statique si elle est déclarée dans une fonction, chaque fois qu'il est entré dans cette fonction, ou l'utilisation de la variable est d' abord déclarée, ainsi que la valeur de la dernière utilisation enregistrée.
Si vous utilisez des variables statiques et la structure de classe, dont la structure ou toute définition de classe d'objet, nous partagerons un variables statiques uniques.
Lorsque la variable automatique qui est libérée à la fin de la fonction, et cette fonction est appelée à nouveau, et redéfinit une nouvelle variable