Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> C++

C++ में अपना खुद का memcpy() और memmove() लिखें

memcpy() फ़ंक्शन एक इनबिल्ट फ़ंक्शन है जिसका उपयोग डेटा को स्रोत स्थान से गंतव्य स्थान पर कॉपी करने के लिए किया जाता है।

memcpy फ़ंक्शन का प्रोटोटाइप -

void * memcpy(void *destination_location, void *source_location, size_t size)

हम स्रोत से गंतव्य तक चरित्र प्रतिलिपि डेटा के आधार पर करेंगे।

समाधान के कार्यान्वयन को दिखाने के लिए कार्यक्रम,

उदाहरण

#include<stdio.h>
#include<string.h>
void MemcpyFunc(void *dest, void *src, size_t n){
   char *dataS = (char *)src;
   char *dataD = (char *)dest;
   for (int i=0; i<n; i++)
      dataD[i] = dataS[i];
}
int main() {
   char dataS[] = "Hello!";
   char dataD[100];
   MemcpyFunc(dataS, dataD, strlen(dataS)+1);
   printf("Copied string is %s", dataD);
   return 0;
}

आउटपुट

Copied string is Hello!

मेममूव () फ़ंक्शन memcpy () के समान है, यह डेटा को स्रोत से गंतव्य चार तक चार द्वारा कॉपी करता है। यह मेमकॉपी () के मुद्दे पर काबू पाता है जो तब होता है जब स्रोत और गंतव्य एक दूसरे को ओवरलैप करते हैं।

हमारे memmove() में, हम एक अस्थायी सरणी का उपयोग करेंगे जो अतिव्यापी स्रोत और गंतव्य समस्या को संभालती है।

समाधान के कार्यान्वयन को दिखाने के लिए कार्यक्रम,

उदाहरण

#include<stdio.h>
#include<string.h>
void MemcpyFunc(void *dest, void *src, size_t n){
   char *dataS = (char *)src;
   char *dataD = (char *)dest;
   char *temp = new char[n];
   for (int i=0; i<n; i++)
      temp[i] = dataS[i];
   for (int i=0; i<n; i++)
      dataD[i] = temp[i];
}
int main() {
   char dataS[] = "Hello!";
   char dataD[100];
   MemcpyFunc(dataS, dataD, strlen(dataS)+1);
   printf("Moved string is %s", dataD);
   return 0;
}

आउटपुट

Moved string is Hello!

  1. strncat () सी ++ में

    सी ++ में फ़ंक्शन strncat() का उपयोग संयोजन के लिए किया जाता है। यह गंतव्य स्ट्रिंग के अंत में स्रोत स्ट्रिंग से वर्णों की निर्दिष्ट संख्या जोड़ता है और गंतव्य स्ट्रिंग के लिए एक सूचक देता है। strncat() का सिंटैक्स निम्नानुसार दिया गया है। char * strncat ( char * dest, const char * src, size_t num )

  1. आपके सिस्टम में इंट, फ्लोट, डबल और चार के आकार को खोजने के लिए सी ++ प्रोग्राम

    C++ में डेटा प्रकार सी ++ में कई डेटा प्रकार हैं लेकिन सबसे अधिक बार उपयोग किए जाने वाले इंट, फ्लोट, डबल और चार हैं। इन डेटा प्रकारों के बारे में कुछ विवरण इस प्रकार हैं - इंट - इसका उपयोग पूर्णांक डेटा प्रकारों के लिए किया जाता है, जिन्हें सामान्य रूप से 4 बाइट मेमोरी स्पेस की आवश्यकता होती है।

  1. अपना खुद का सीज़र सिफर एनकोडर कैसे लिखें

    क्या आपने कभी सीज़र सिफर . के बारे में सुना है ? जूलियस सीजर ने इस तकनीक का इस्तेमाल अपने दुश्मनों से गुप्त संदेश छुपाने के लिए किया था! सीज़र सिफर सबसे आदिम एन्क्रिप्शन तकनीकों में से एक है। इस प्रणाली के पीछे मुख्य विचार अक्षरों को घुमाना . है वर्णमाला पर पदों की एक x संख्या । उदाहरण के लिए, x