Heim > Artikel > Backend-Entwicklung > Wie kann ich Strings in C trimmen und reduzieren?
Trimmen und Reduzieren von Strings sind gängige Vorgänge in der Programmierung. Beim Trimmen geht es um das Entfernen führender und nachfolgender Leerzeichen aus einer Zeichenfolge, beim Reduzieren geht es darum, aufeinanderfolgende Leerzeichen durch ein einzelnes vordefiniertes Zeichen oder eine einzelne Zeichenfolge zu ersetzen.
Um eine Zeichenfolge in C zu kürzen, müssen Sie kann die Methoden find_first_not_of und find_last_not_of verwenden, um das erste und letzte Nicht-Leerzeichen zu identifizieren. Der folgende Code veranschaulicht diesen Ansatz:
#include <string> std::string trim(const std::string& str) { const auto strBegin = str.find_first_not_of(" \t"); if (strBegin == std::string::npos) return ""; // no content const auto strEnd = str.find_last_not_of(" \t"); const auto strRange = strEnd - strBegin + 1; return str.substr(strBegin, strRange); }
Beim Reduzieren einer Zeichenfolge werden aufeinanderfolgende Leerzeichen durch ein vordefiniertes Zeichen oder eine vordefinierte Zeichenfolge ersetzt. Hier ist eine Funktion, die diesen Vorgang ausführt:
std::string reduce(const std::string& str, const std::string& fill = " ", const std::string& whitespace = " \t") { // trim first auto result = trim(str); // replace sub ranges auto beginSpace = result.find_first_of(whitespace); while (beginSpace != std::string::npos) { const auto endSpace = result.find_first_not_of(whitespace, beginSpace); const auto range = endSpace - beginSpace; result.replace(beginSpace, range, fill); const auto newStart = beginSpace + fill.length(); beginSpace = result.find_first_of(whitespace, newStart); } return result; }
Hier ist ein Beispiel, das die Verwendung der Trimm- und Reduzierungsfunktionen demonstriert:
const std::string foo = " too much\t \tspace\t\t\t "; const std::string bar = "one\ntwo"; std::cout << "[" << trim(foo) << "]" << std::endl; std::cout << "[" << reduce(foo) << "]" << std::endl; std::cout << "[" << reduce(foo, "-") << "]" << std::endl; std::cout << "[" << trim(bar) << "]" << std::endl;
[too much space] [too much space] [too-much-space] [one two]
Das obige ist der detaillierte Inhalt vonWie kann ich Strings in C trimmen und reduzieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!