Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> सी प्रोग्रामिंग

हम सी/सी++ में strncpy असुरक्षित क्यों मानते हैं?


फ़ंक्शन strncpy() का उपयोग निर्दिष्ट वर्णों की संख्या को स्रोत से गंतव्य तक कॉपी करने के लिए किया जाता है।

strncpy()

. का सिंटैक्स निम्नलिखित है
char *strncpy( char *destination, char *source, size_t n);

यहां, गंतव्य गंतव्य सरणी का सूचक है जहां स्रोत स्ट्रिंग की प्रतिलिपि बनाई जानी है, स्रोत स्ट्रिंग की प्रतिलिपि बनाई जानी है और n स्रोत स्ट्रिंग से कॉपी किए जाने वाले वर्णों की अधिकतम संख्या है।

strncpy() फ़ंक्शन असुरक्षित है क्योंकि यदि स्रोत स्ट्रिंग में पहले n वर्णों में NULL वर्ण उपलब्ध नहीं है, तो गंतव्य स्ट्रिंग NULL को समाप्त नहीं किया जाएगा।

एक प्रोग्राम जो C++ में strncpy() प्रदर्शित करता है, वह इस प्रकार दिया गया है।

उदाहरण

#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;
}

आउटपुट

उपरोक्त प्रोग्राम का आउटपुट इस प्रकार है।

The destination string is: This

आइए अब उपरोक्त कार्यक्रम को समझते हैं।

स्रोत स्ट्रिंग में डेटा होता है "यह एक स्ट्रिंग है"। फिर strncpy() का उपयोग पहले चार वर्णों को गंतव्य स्ट्रिंग में कॉपी करने के लिए किया जाता है। फिर गंतव्य स्ट्रिंग की सामग्री मुद्रित की जाती है। इसे दिखाने वाला कोड स्निपेट इस प्रकार है।

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

  1. सी भाषा में strncpy () फ़ंक्शन क्या है?

    C लाइब्रेरी फ़ंक्शन char *strncpy(char *dest, const char *src, size_t n) src . द्वारा इंगित की गई स्ट्रिंग से n वर्णों तक कॉपी करता है करने के लिए गंतव्य . ऐसे मामले में जहां, src की लंबाई n से कम है, शेष भाग को शून्य बाइट्स के साथ गद्देदार किया जाएगा। वर्णों की एक सरणी को स्ट्रिंग कहा जाता है। घोष

  1. कैसे जांचें कि कोई सी/सी ++ स्ट्रिंग एक int है या नहीं?

    यह जांचने के कई तरीके हैं कि स्ट्रिंग एक इंट है या नहीं और उन तरीकों में से एक है स्ट्रिंग की जांच के लिए isdigit() का उपयोग करना। यह जांचने के लिए यहां एक उदाहरण दिया गया है कि स्ट्रिंग एक int है या नहीं C++ भाषा में, उदाहरण #include<iostream> #include<string.h> using namespace std; i

  1. सी/सी++ में एक स्ट्रिंग को उलट दें

    सी भाषा में एक स्ट्रिंग को उलटने के लिए यहां एक उदाहरण दिया गया है, उदाहरण #include<stdio.h> #include<string.h> int main() {    char s[50], t;    int i = 0, j = 0;    printf("\nEnter the string to reverse :");    gets(s);