-3
votes

Ajouter de char qui est un opérateur de mathématiques à une chaîne aléatoire

J'essaie d'ajouter "+", "-", "*", etc. à une chaîne mais cela ne fonctionne pas.

permet de dire que j'ai une chaîne "12 3 +" alors j'utilise String TMP Pour obtenir des valeurs entre les espaces tels que "12" "3" "+". Mon COUT Imprime "12" et "3", mais "+" est manquant xxx


1 commentaires

Veuillez inclure un exemple de reproductible minimal avec votre message afin que les intervenants potentiels puissent identifier et diagnostiquer le problème que vous rencontrez


3 Réponses :


0
votes

Du code que vous avez fourni, je vois un problème qui causerait le dernier caractère de ne pas être imprimé. En effet, vous n'imprimez que TMP lorsque le caractère suivant est un espace. Donc, "12 3 +" imprimerait "12", "3". Ensuite, TMP contient la valeur "+" car sa nette jamais imprimée ni effacé, mais n'est jamais imprimée. Si votre chaîne d'entrée est "12 3 +" (remarquez l'espace) Le caractère "+ 'serait imprimé aussi.

Ceci peut être résolu avec impression et compensation TMP Une fois la boucle terminée si TMP contient toujours des données.


0 commentaires

0
votes

Votre boucle n'imposera jamais le dernier jeton de la chaîne à moins que la chaîne se termine dans un espace. Lorsque vous avez "12 3 +" vous avez lu dans le 12 voir un espace, imprimez le 12 et effacez la chaîne. Vous faites la même chose pour 3 . Ensuite, vous obtenez + mais comme c'est le dernier caractère de la chaîne, vous n'exécutez jamais la partie el / code> de la déclaration IF pour l'imprimer. Vous pouvez résoudre cela quelques façons. Vous pouvez vérifier si TEMP n'est pas vide après la boucle et s'il n'est pas alors manipulé. Vous pouvez retravailler votre logique dans la boucle pour gérer lorsque vous êtes sur le dernier caractère et ce n'est pas un espace. Vous pouvez ajouter un espace à la fin de l'entrée afin que cela se termine par un espace et la boucle fonctionne comme cela.


0 commentaires

1
votes

problème est que + est votre dernier caractère, de sorte que vous n'irez pas en plus de bloc pour cela.

std :: COUT TEMP Une fois que la boucle montrerait votre personnage manquant:

Démo


0 commentaires