Erhalte einen Teil eines Char-Arrays

8

Ich denke, das ist eine wirklich alberne Frage, aber ich kann nirgends eine Antwort finden!

Ist es möglich, eine Gruppe von Zeichen aus einem char-Array zu erhalten? einen Pseudo-Code zu werfen:

%Vor%

Ausgabe:

%Vor%

Also, kann ich ein Segment von chars aus einem Array wie diesem ohne loopen bekommen und sie char-by-char erhalten oder in Strings konvertieren, so dass ich substr () verwenden kann?

    
Curlystraw 23.01.2011, 23:12
quelle

4 Antworten

15

Kurz gesagt, nein. C-Style "Strings" funktionieren einfach nicht so. Sie müssen entweder eine manuelle Schleife oder strncpy() verwenden oder über C ++ std::string -Funktionalität. Da Sie in C ++ sind, können Sie auch alles mit C ++ - Zeichenfolgen machen!

Randnotiz

Für Ihre spezielle Beispielanwendung können Sie dies einfach über die von printf() angebotene Funktionalität erreichen:

%Vor%     
Oliver Charlesworth 23.01.2011, 23:14
quelle
14

Sie könnten memcpy (oder strncpy ) verwenden, um eine Teilzeichenfolge zu erhalten:

%Vor%

Beachten Sie bei einem anderen Aspekt Ihres Codes, dass das Ausführen von printf(str) zu Sicherheitsanfälligkeiten in Formatzeichenfolgen führen kann, wenn str nicht vertrauenswürdige Eingaben enthält.

    
Jeremiah Willcock 23.01.2011 23:18
quelle
4

Wie Oli sagte, müssten Sie C ++ std::string -Funktionalität verwenden. In Ihrem Beispiel:

%Vor%     
Moo-Juice 23.01.2011 23:19
quelle
0

Nun, Sie erwähnen die zwei offensichtlichen Ansätze. Das einzige, was ich mir vorstellen kann, wäre, einen eigenen Teilzeichenkettentyp zu definieren, um mit Zeichenarrays zu arbeiten:

%Vor%     
Keith 23.01.2011 23:33
quelle

Tags und Links