Heim > Backend-Entwicklung > C++ > Hauptteil

Warum halten wir strncpy in C/C++ für unsicher?

WBOY
Freigeben: 2023-09-13 09:17:02
nach vorne
1233 Leute haben es durchsucht

Warum halten wir strncpy in C/C++ für unsicher?

Mit der Funktion strncpy() wird die angegebene Anzahl an Zeichen von der Quelle zum Ziel kopiert.

Das Folgende ist die Syntax von strncpy()

char *strncpy( char *destination, char *source, size_t n);
Nach dem Login kopieren

Hier ist Ziel ein Zeiger auf das Zielarray, in das die Quellzeichenfolge kopiert wird, Quelle ist die Zeichenfolge, die kopiert werden soll, und n ist die Zeichenfolge, aus der kopiert werden soll . Die maximale Anzahl der zu kopierenden Zeichen. Die Funktion

strncpy() ist unsicher, denn wenn die ersten n Zeichen der Quellzeichenfolge kein NULL-Zeichen enthalten, wird die Zielzeichenfolge nicht mit NULL terminiert.

Das Folgende ist ein Programm, das die Funktion strncpy() in C++ demonstriert.

Beispiel

Online-Demonstration

#include <iostream>
#include <cstring>
using namespace std;
int main () {
   char source[20] = "This is a string";
   char dest[20];
   strncpy(dest, source, 4);
   cout << "The destination string is: " << dest;
   return 0;
}
Nach dem Login kopieren

Ausgabe

Die Ausgabe des obigen Programms ist wie folgt.

The destination string is: This
Nach dem Login kopieren

Lassen Sie uns nun das obige Programm verstehen.

Der Quellstring enthält die Daten „Dies ist ein String“. Verwenden Sie dann strncpy(), um die ersten vier Zeichen in die Zielzeichenfolge zu kopieren. Drucken Sie dann den Inhalt der Zielzeichenfolge aus. Ein Codeausschnitt, der dies zeigt, finden Sie unten.

char source[20] = "This is a string";
char dest[20];
strncpy(dest, source, 4);
cout << "The destination string is: " << dest;
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWarum halten wir strncpy in C/C++ für unsicher?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:tutorialspoint.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage