In diesem Beitrag wird erläutert, wie führende Nullen zu einer Zeichenfolge in C++ hinzugefügt werden.
1. Verwenden std::string
Konstrukteur
Eine einfache Lösung besteht darin, mithilfe von eine Zeichenfolge zu erstellen, die nur aus Nullen der erforderlichen Länge besteht std::string
Konstrukteur. Hängen Sie dann die ursprüngliche Zeichenfolge daran an. Es folgt eine C++-Implementierung derselben:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
#include <iostream> #include <string> #include <algorithm> int main() { std::string str = "11011"; size_t n = 8; int precision = n - std::min(n, str.size()); std::string s = std::string(precision, '0').append(str); std::cout << s << std::endl; // 00011011 return 0; } |
2. Verwenden string::insert
Die obige Lösung erstellt eine neue Zeichenfolge. Um die führenden Nullen in die ursprüngliche Zeichenfolge einzufügen, sollten Sie die Verwendung von in Betracht ziehen string::insert
Funktion. Seine Verwendung wird im Folgenden demonstriert:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
#include <iostream> #include <string> #include <algorithm> int main() { std::string str = "11011"; size_t n = 8; int precision = n - std::min(n, str.size()); str.insert(0, precision, '0'); std::cout << str << std::endl; // 00011011 return 0; } |
3. Verwenden std::ostringstream
Eine weitere Möglichkeit ist die Verwendung von std::setw
Manipulator mit std::ostringstream
um eine Zeichenkette mit führenden Nullen aufzufüllen. Dies bräuchte <sstream>
und <iomanip>
Kopfzeilen.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
#include <iostream> #include <string> #include <algorithm> #include <sstream> #include <iomanip> int main() { std::string str = "11011"; size_t n = 8; std::ostringstream ss; ss << std::setw(n) << std::setfill('0') << str; std::string s = ss.str(); std::cout << s << std::endl; // 00011011 return 0; } |
4. Verwenden std::format
Beginnend mit C++20 können wir die verwenden formatting library um dem String führende Nullen hinzuzufügen. Es bietet die std::format
Funktion in der Kopfzeile <format>
. Mit C++17 und früher können wir die verwenden {fmt}
Bibliothek, um dasselbe zu erreichen.
1 2 3 4 5 6 7 8 9 10 11 12 13 |
#include <iostream> #include <string> #include <algorithm> #include <format> int main() { std::string str = "11011"; std::cout << std::format("{:08}", str); // 00011011 return 0; } |
Das ist alles über das Hinzufügen von führenden Nullen zu einem String in C++.