Wie kann ich einen String in C schneiden?

8

Ich muss herausfinden, ob ein Char-Array mit "ADD" beginnt. Ich weiß, wie man strcmp () benutzt, aber ich weiß nicht, wie man die ersten drei Zeichen bekommt. Ich hasse es wirklich mit C-Strings zu arbeiten. Wie kann ich ein Stück eines Char-Arrays wie char buffer[1024]?

aufnehmen?     
Aerovistae 02.12.2012, 22:30
quelle

2 Antworten

9

Verwenden Sie strncmp("ADD", buffer, 3) .

Ich bin mir nicht sicher, was Sie mit "slice" meinen, aber jeder Zeiger in buffer könnte als Slice betrachtet werden. Wenn beispielsweise buffer eine Zeichenfolge ist, die mit "ADD" beginnt, dann ist char *slice = buffer + 3 die gleiche Zeichenfolge mit "ADD" entfernt. Hinweis das slice ist dann ein Teil von buffer und das Ändern des Inhalts von slice ändert den Inhalt von buffer . Und umgekehrt.

Wenn Sie mit "slice" eine unabhängige Kopie meinen, müssen Sie einen neuen Speicherblock zuweisen und die interessanten Teile aus buffer in Ihren Speicher kopieren. Die Bibliotheksfunktionen strdup und strndup sind dafür geeignet.

    
kmkaplan 02.12.2012, 22:32
quelle
8

Verwenden Sie strncmp .Assuming buffer ist die zu testende Variable, nur

%Vor%     
fvu 02.12.2012 22:32
quelle

Tags und Links