C++ ne Peut pas soustraire deux chaînes

Je veux soustraire deux chaînes dans ce code, mais il ne me laisse pas faire et donne un opérateur d'erreur. Ce code fondamentalement essaie de séparer un plein nom de l'entrée en deux sorties: nom et prénom. S'Il Vous Plaît Aider! Merci!!!!

#include <iostream>
#include <cstdlib>
#include <string>
using namespace std;

string employeeName, firstName, lastName;
int pos1, difference;

int main() {
    cout << "Enter your full name: " << endl;
    getline(cin, employeeName);

    pos1 = employeeName.find(" ");
    difference = pos1 - 0;
    lastName = employeeName.erase(0,difference);
    firstName = employeeName - lastName;

    cout << lastName << firstName << endl;

    system("pause");
    return 0;
}
  • vous pouvez utiliser std::string.méthode substr
  • Merci pour la réponse. Mais je veux le faire, la simple méthode, car ce q a été lors de mon essai, et nous n'avons pas couvert choses avancées.
  • Regardez dans votre C++ manuel ou livre de référence, pour voir tous les opérateurs disponibles avec std::string et de vérifier l'opérateur de soustraction.
  • Notez que string::erase modifie la chaîne d'entrée, de sorte que même si firstName = employeeName - lastName travaillé, le premier nom a déjà été effacé de employeeName.
  • merci Jonathan!! C'était vraiment utile!!!
  • Eh bien, je dois admettre que je ne peux penser à des situations où une chaîne de soustraction pourrait être utile pour l'opérateur. `"chat" - "chien" est en effet taureau, mais à l'occasion, il pourrait être utile. Car ce serait une très précaire de l'opération, je vous suggère d'utiliser seulement après test si cela peut être fait à tout.

InformationsquelleAutor Haris Irshad | 2013-10-16