Zum Beispiel habe ich das hier
char *buff = "this is a test string";
und möchte "test"
erhalten. Wie kann ich das tun?
Zum Beispiel habe ich das hier
char *buff = "this is a test string";
und möchte "test"
erhalten. Wie kann ich das tun?
Angenommen, Sie kennen die Position und die Länge des Teilstrings:
char *buff = "this is a test string";
printf("%.*s", 4, buff + 10);
Sie könnten dasselbe erreichen, indem Sie den Teilstring in ein anderes Speicherziel kopieren, aber es ist nicht vernünftig, da Sie ihn bereits im Speicher haben.
Dies ist ein gutes Beispiel für das Vermeiden unnötigen Kopierens durch Verwendung von Zeigern.
Verwenden Sie char* strncpy(char* dest, char* src, int n)
aus . In Ihrem Fall müssen Sie den folgenden Code verwenden:
char* substr = malloc(4);
strncpy(substr, buff+10, 4);
Vollständige Dokumentation zur Funktion strncpy
hier.
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.