Wie der Titel sagt, gibt es eine Möglichkeit, das zu tun? Ich habe versucht, #define und #typedef zu verwenden, aber beide müssen das Wort "string" im Programm erscheinen.Gibt es eine Möglichkeit, Zeichenfolge in C++ zu verwenden, ohne dass das Wort "Zeichenfolge" im Programm angezeigt wird?
Antwort
Natürlich können Sie:
#define S str##ing
#define S_INCLUDE <S>
#include <iostream>
#include S_INCLUDE
int main()
{
std::S str = "Hello world!";
std::cout << str << std::endl;
}
'std :: runtime_error (" "). What()' gibt ein 'const char *' zurück, also ist es kein 'std: stirng'. – NathanOliver
Beachten Sie, dass die '
können Sie Makro verwenden:
#define CO(first, second) second##first
int main()
{
CO(ing, str) foobar;
}
, die diesen Fehler erzeugt:
error: ‘string’ was not declared in this scope
CO(ing, str) foobar;
dies zeigt, dass wörtliche string
gebaut wurde, es zu benutzen als eine Art liegt auf der Hand (durch using namespace std
oder Ändern str
zu std::str
).
wenn Sie C++ 14 können Sie Literale verwenden:
using namespace std::literals;
auto str = ""s;
decltype(str) anotherstr;
beide Lösungen erfordern Kopf <string>
aber das kann, indem ein anderes System-Header vermieden werden, dass direkt oder indirekt enthält es.
aber ich sehe keinen praktischen Zweck davon.
Sie müssen jedoch include für 'std :: Literals' beheben. – Jarod42
Die erste Antwort erzeugt einen Fehler, ich sehe nicht, wie das relevant ist. In der zweiten Antwort brauchen Sie '#include
in gcc können Sie einfach # # include
Sie können dies tun:
#include FOOBAR_I
int main() {
std::FOOBAR foobar = "";
(void)foobar;
}
und kompilieren Sie es mit den folgenden Befehlszeilenparameter:
-DFOOBAR="string" -DFOOBAR_I="<string>"
- 1. Gibt es eine bessere Möglichkeit, eine Zeichenfolge mehrmals zu suchen?
- 2. Python: Gibt es eine Möglichkeit, eine Zeichenfolge mit nur ausgewählten Zeichen in der Zeichenfolge zu sortieren?
- 3. Das Programm gibt keine im Array gespeicherte Zeichenfolge aus.
- 4. java - Gibt es eine Möglichkeit zu bestätigen, dass eine Zeichenfolge ein sha256-Hash ist?
- 5. Gibt es eine Möglichkeit, die Pixellänge einer Zeichenfolge zu berechnen?
- 6. Gibt es eine Möglichkeit, eine Zeichenfolge in Node.js regexp-Anführungszeichen?
- 7. Gibt es eine bessere Möglichkeit, dieser Zeichenfolge zu entkommen?
- 8. Gibt es eine einfache Möglichkeit, ein Zeichen in einer Zeichenfolge in C# zu ändern?
- 9. Gibt es eine Möglichkeit, Audio-Snippets in C# zu spielen, ohne das DirectX-SDK zu installieren?
- 10. Gibt es eine Möglichkeit, auf das Zeichen einer Zeichenfolge in einem Zeichenfolgenarray in C# zuzugreifen?
- 11. Gibt es eine Möglichkeit, Winkel 2 ohne Modullader zu verwenden?
- 12. Gibt es eine Möglichkeit, eine Zeichenfolge aus der Zeichenfolge cmd zu kopieren?
- 13. Gibt es eine Möglichkeit, doppelte Zeichenfolge in einer Zeichenfolge basierend auf Muster zu entfernen?
- 14. Gibt es eine Möglichkeit, dass ich eine in einer URL nicht interpretierte Zeichenfolge übergeben kann?
- 15. Gibt es eine Möglichkeit, etwas ähnliches zu C# 's zu verwenden (@ "") in Java
- 16. Gibt es eine Möglichkeit, einer Objekteigenschaft eine mehrzeilige Zeichenfolge zuzuweisen?
- 17. Lese jedes Wort in einer Zeichenfolge C++
- 18. Gibt es eine Möglichkeit, Token in C zu zählen?
- 19. Gibt es eine integrierte Möglichkeit, Strings in C++ zu teilen?
- 20. Zweig konvertieren eine Zeichenfolge in das Objekt, dass es
- 21. Gibt es eine Möglichkeit, js-Datei oder eine Skript-Zeichenfolge in ein Objekt zu konvertieren?
- 22. Gibt es eine andere einfachere Möglichkeit, dieses Programm zu schreiben?
- 23. Gibt es eine bessere Möglichkeit, das Auftreten von char in einer Zeichenfolge zu zählen?
- 24. Verwenden Sie das Klassenobjekt als Zeichenfolge, ohne str() zu verwenden
- 25. Gibt es eine Möglichkeit, eine crypt() in c umzukehren?
- 26. Gibt es eine Möglichkeit, das n-te Zeichen zu finden?
- 27. Gibt es eine Möglichkeit, datetime.date ohne ein Jahr zu verwenden?
- 28. Gibt es eine Möglichkeit, eine bedingte Zeichenfolge in Python die erweiterte Zeichenfolge Formatierung "foo {}". Format (bar)?
- 29. Gibt es eine Möglichkeit, freigegebene Beispiele im Exunit zu verwenden?
- 30. Ersetzen der gesamten Zeichenfolge, wenn es ein passendes Wort gibt
hmmm vielleicht 'char *' ? – Amadeus
Sie können Cstrings verwenden. –
Während * ist es möglich * Fragen können Spaß machen Ich sehe kein praktisches Programmierproblem das könnte lösen. – NathanOliver