Friday, December 6, 2019

Flow Control in C++

Introduction to C++ Flow Control

Normally जब भी कोई C++ program execute होता है तो पहला दूसरा तीसरा ऐसे ही sequence में सारे statements execute होते है। Program execution की यह sequence program का execution flow कहलाती है।

इस execution flow को आप control कर सकते है। आप चाहे तो किसी statement के execution को skip कर सकते है, किसी statement को एक से ज्यादा बार execute करवा सकते है या फिर program में एक statement से दूसरे statement पर jump कर सकते है।



Program के execution flow को control करने के लिए C++ आपको कुछ built in flow control statements provide करती है। C++ आपको 3 प्रकार के flow control statements provide करती है।

1. Selection Statements
2. Looping Statements
3. Jump Statements
इन statements के बारे में निचे detail से दिया जा रहा है।

Selection Statements
   
ये वो statements होते है जो किसी statement को condition के base पर execute करते है। जब condition match होती है तो statement execute हो जाता है नहीं तो उसे skip कर दिया जाता है। Selection statements 4 प्रकार के होते है। निचे इनके बारे में detail से बताया जा रहा है।

If Statement

If statement एक condition block होता है। Condition true होने पर इस block में दिए गए सभी statements execute हो जाते है। यदि condition true नहीं है तो इस block का कोई भी statement execute नहीं होता है। If statement का general syntax निचे दिया जा रहा है।

if(condition)
{
    // Statements to be executed when condition is true.
}
If statement को निचे उदाहरण के माध्यम से समझाया जा रहा है।

if(5>3)
{
     cout<<“5 is greater than 3”;
}

If-else Statement

If else statement में if statement के साथ else block भी जोड़ दिया जाता है। Else block में वे statements होते है जो condition के false होने पर execute होंगे। इसका general syntax निचे दिया जा रहा है।

if(condition)
{
     // Statements to be executed when condition is true.
}
else
{
     // Statements to be executed when condition is false.
}

If else statement को निचे उदाहरण के माध्यम से समझाया जा रहा है।

if(5>3)
{
     cout<<“5 is greater than 3”;
}
else
{
     cout<<“5 is less than 3”;
}

Nested If
जब आप एक if block में दूसरा if block define करते है तो वह nested if कहलाता है। ऐसे आप कितने भी if block define कर सकते है। इसका general syntax निचे दिया जा रहा है।

if(condition)
{
      if(condition)
      {


      }

}

इसका उदाहरण निचे दिया जा रहा है।

if(num>0)
{
     if(num<2 b="">
     {
              cout<<“Num is 1”;
     }
}

Switch Case

Switch case एक ऐसा block होता है जिसमें आप अपनी choice pass करते है। Switch block में define किये गए जिस case से आपकी choice match हो जाती है उसी case के statements execute हो जाते है। इसका general syntax निचे दिया जा रहा है।

switch(choice)
{
   case 1:
                // Statements to be executed;
                break;
  case 2:
                // Statements to be executed;
                break;
  case 3:
               // Statements to be executed;
               break;
  default:
               // Statements to be executed;
               break;

}

जब आपकी choice से कोई भी case match नहीं करता है तो default case execute हो जाता है। सभी cases के statements के बाद break statement लगाना अनिवार्य है। इसे निचे उदाहरण के माध्यम से समझाया जा रहा है।

#include
using namespace std;


int main()
{
    int choice=4;

    // Passing case in switch
    switch(choice)
    {
        case 1:
                        cout<<“This is case 1”;
                        break;
       case 2:
                        cout<<“This is case 2”;
                        break;
       case 3:
                        cout<<“This is case 3”;
                        break;
       default:
                       cout<<“Please enter number between 1 to 3”;
                       break;
    }

     return 0;
}

output :-

Please enter number between 1 to 3 

Looping Statements

एक loop statement ऐसा block होता है जिसमें define किये गए blocks एक से अधिक बार execute किये जाते है। यदि आप किसी statement को एक से अधिक बार execute करवाना चाहते है तो इसके लिए आप एक loop use कर सकते है। C++ में looping statements 3 प्रकार के है। इनके बारे में निचे दिया जा रहा है।

While loop 

While loop एक ऐसा block होता है जिसमें दिए गए statements तब तक बार बार execute होते है जब तक की दी गयी condition true होती है। जैसे ही condition false होती है loop terminate हो जाता है। यदि condition false ना हो तो loop infinitely चलता रहेगा, इसलिए आप loop control variable को increase करते है।

Loop control variable condition में define किया जाता है। हर loop iteration में इसे increase किया जाता है ताकि condition false हो सके और loop terminate हो जाए। While loop का general syntax निचे दिया जा रहा है।

while(condition)
{
      // Statements to be executed;
      // X++, where X is loop control variable;
}

While loop को निचे उदाहरण के माध्यम से समझाया जा रहा है।
           
#include
using namespace std;


int main()
{
       int num=0;
     
       // While loop iterating until num is less than 5
       while(num<5 b="">
       {
           cout<<“Best Hindi Tutorials”<<“n”;

           // Incrementing num to reach the loop termination condition
           num++;
       }

       return 0;
}

 output :-

Best Hindi Tutorials
Best Hindi Tutorials
Best Hindi Tutorials
Best Hindi Tutorials
Best Hindi Tutorials

Do While Loop

एक do while loop भी while loop की तरह ही होता है। Do while loop में ख़ास बात ये है की ये कम से कम एक बार जरूर execute होता है फिर चाहे condition true हो या फिर flase हो। साथ ही do while loop में condition loop के आख़िर में check की जाती है। Do while loop का general syntax निचे दिया जा रहा है।

do
{
    statements to be executed;
    X++;  // Where X is loop control variable
}while(condition)

जैसा की आप ऊपर दिए गए syntax में देख सकते है condition के check होने से पहले do block में दिए गए statements execute होंगे और इसके बाद condition check होगी।

यदि condition false होती है तो loop terminate हो जायेगा नहीं तो do block वापस execute होगा। Loop control variable को do block में ही increase किया जायेगा। आइये अब इसे एक उदाहरण के माध्यम से समझने का प्रयास करते है।

#include
using namespace std;


int main()
{

    int num=0;

    // Checking condition after executing statements
    do
    {
       cout<<“Best Hindi Tutorials”;
       num++;
    }while(num>10);

    return 0;

}

output :-
Best Hindi Tutorials

For Loop

सभी loops में for loop सबसे simple loop माना जाता है। For loop में loop control variable का initialization, condition और increment तीनों एक ही statement में लिखे जाते है। इसके बाद block में वे statements लिखे जाते है

जिन्हें आप condition true होने पर execute करना चाहते है। For loop का general syntax निचे दिया जा रहा है।

for(initialization;condition;increment)
{
     // Statements to be executed when condition is true.
}
आइये अब for loop के use को एक उदाहरण के माध्यम से समझने का प्रयास करते है।

#include
using namespace std;


int main()
{
    int num;

    // 3 times iterating for loop
    for(num=0;num<=2;num++)
    {
          cout<<“Best Hindi Tutorials”<<“n”;
    }

    return 0;
}

output :-
                 Best Hindi Tutorials
                 Best Hindi Tutorials
                 Best Hindi Tutorials 

Jump Statements

Jump statements वे statements होते है जो execution control को एक statement से दूसरे statement को pass कर देते है। C++ में jump statements 3 प्रकार के होते है। इनके बारे में निचे दिया जा रहा है।

Break Statement 

Break statement loop को terminate करने के लिए use किया जाता है। जब भी आप किसी block में break statement use करते है तो इसे execute होते है ही program का control उस block से बाहर आ जाता है। इसका general syntax निचे दिया जा रहा है।

break;

Break statement के use को निचे उदाहरण के माध्यम से समझाया गया है।

#include
using namespace std;


int main()
{
    int num;
    for(num=0;num<5 b="" num="">
    {
         if(num==3)
         {
             cout<<“Loop terminated by break statement”;
     
             // Terminating loop on 4th iteration
             break;
         }
         else
         {
              cout<<“Best Hindi Tutorials”<<“n”;  
         }
   }

    return 0;
}

output :-
               Best Hindi Tutorials
               Best Hindi Tutorials
               Best Hindi Tutorials

Continue Statement

Continue statement loop की iteration को skip करने के लिए use किया जाता है। Continue statement के use से loop उस iteration को skip करके next iteration को execute करता है। इसका general syntax निचे दिया जा रहा है।

continue;
Continue statement को निचे उदाहरण के माध्यम से समझाया गया है।

#include
using namespace std;


int main()
{
     for(int num=0;num<5 b="" num="">
     {
          if(num==2)
          {
               cout<<“Third iteration skipped!”<<“n”;

               // Skipping third iteration of loop
               continue;
          }
          else
          {
               cout<<“Best Hindi Tutorials”<<“n”;
          }
     }

      return 0;
}

output :- 
              Best Hindi Tutorials
              Best Hindi Tutorials
              Third iteration skipped!
              Best Hindi Tutorials
              Best Hindi Tutorials 

Go to Statement

Goto statement program में एक point से किसी दूसरे point पर jump करने के लिए use किया जाता है। ये jump किसी label पर किया जाता है, इसलिए जब भी आप program में कँही jump करना चाहते है तो पहले label define करते है। एक label define करने का general syntax निचे दिया जा रहा है।

label-name:

जैसा की आप ऊपर दिए गए syntax में देख सकते है, सबसे पहले आप label का नाम define करते है और उसके बाद colon लगाते है। किसी भी label पर jump करने के लिए आप goto statement define करते है। इसका general syntax निचे दिया जा रहा है।

goto label-name;

Goto statement के use को निचे उदाहरण के माध्यम से समझाया गया है।

#include
using namespace std;


int main()
{

     cout<<“Hello Reader!”;
     goto bhtLabel;

   
     if(5>3)
     {
          cout<<“This will not be executed!”;
     }

     bhtLabel:
      cout<<“Hello Reader Again!”;

     return 0;
}

output :-
              Hello Reader!
              Hello Reader Again! 

Virtual Functions in C++

Introduction to C++ Virtual Functions

C++ आपको polymorphism की capability provide करती है। Polymorphism का मतलब एक interface से कई तरह के अलग अलग codes को execute करना होता है। जैसा की function overloading और constructor overloading में आप करते है।
Function overloading में आप एक ही नाम के function को अलग अलग data types के साथ create करते है। इसके बाद function को call करवाते समय user जिस तरह का data type pass करते है उसके अनुसार function की appropriate definition execute हो जाती है।



इसे run-time polymorphism कहा जाता है। क्योंकि इसमें run time पर decide किया जाता है की function की कौनसी definition execute होगी।

उसी प्रकार pointers के माध्यम से भी आप polymorphism achieve कर सकते है। सिर्फ base class के pointer से ही आप दोनों classes के functions को execute करवा सकते है। ऐसा virtual functions के माध्यम से किया जाता है।

Virtual functions के बारे में और अधिक जानने से पहले आपको ये जानने की जरुरत है की virtual functions की जरुरत क्यों पड़ी। इसे निचे एक उदाहरण के माध्यम से समझाया जा रहा है।

उदाहरण के लिए मान लीजिये आपने एक class create की है जिसका नाम color है। इस class में आपने display() नाम से एक function भी create किया हुआ है।

class Color
{
     public:
            void display()
            {
                 cout<<“Red Green Blue”;
            }  
}; 
Color class को एक दूसरी class inherit करती है जिसका नाम RedColor है। इस class में भी एक display() नाम का function create किया गया है। 

class RedColor : public Color
{
      public:
              void display()
              {
                       cout<<“Red”;               
              }
}; 

मान लीजिये आप main() function में base class का एक pointer create करते है। सबसे पहले आप इस pointer को base class object assign करते है और फिर pointer के माध्यम से base class का display() function call करते है। जब आप ऐसा करते है तो display() function “Red Green Blue” print करता है।

int main()
{
      Color *basepntr;   
      color baseobj;  
      RedColor derivedObj  
      basepntr->display(); 
      basepntr=&derivedObj; 
      basepntr->display(); 
 

      return 0;


इसके बाद आप derived class का object create करते है और इसे base class के pointer को assign करते है। अब आप वापस base class के pointer के द्वारा display() function को call करते है। जब आप ऐसा करते है तो वापस base class का ही display() function execute होता है। और “Red Green Blue” output show होता है। 
लेकिन क्योंकि यँहा पर derived class का object pointer को assign किया गया है तो derived class का display() function execute होना चाहिए, पर ऐसा नहीं होता है। इसका main कारण ये है की pointer उसी type के functions को execute कर रहा है जिस type का वह खुद है। 

यानी की ऊपर दिए गए उदाहरण में base class का pointer create किया गया है, इसलिए वह pointer सिर्फ base class के function को ही execute कर रहा है। ऐसी situation में C++ polymorphism feature work नहीं कर रहा है।

इस situation में polymorphism achieve करने एक लिए C++ आपको एक mechanism provide करती है जिसे virtual function कहते है। Virtual functions को virtual keywords से create किया जाता है। Virtual functions सिर्फ base class में ही create किये जाते है।

Virtual functions compiler को बताते है की same नाम का function derived class में भी create किया गया है। इसलिए यदि object derived class का है तो function भी derived class का ही execute किया जायेगा। 

Rules For Creating C++ Virtual Functions 

Virtual function को create और use करने के कुछ नियम होते है जिन्हें follow करना बहुत जरूरी है। आइये इनके बारे में जानने का प्रयास करते है।

1.Virtual functions static नहीं हो सकते है। 
2. Virtual functions को object pointers के द्वारा access किया जाता है। 
3. Virtual functions को base class में define किया जाना चाहिए, चाहे फिर उन्हें बाद में यूज़ किया जाये या नहीं। 
4. Virtual functions किसी दूसरी class के friend function भी हो सकते है। 
5. Virtual function का declaration और derived class में same नाम के function का declaration same होना चाहिए। यदि data types भी different है तो virtual function mechanism work नहीं करेगा। 
6. हालाँकि base class के pointer से किसी भी derived class को point किया जा सकता है, लेकिन derived class के pointer से base class को point नहीं किया जा सकता है। 
7. Base class में define किये गए virtual function को derived class में दुबारा define करने की आवश्यकता नहीं होती है। यदि ऐसा किया जाता है तो base class का function ही execute होगा।            

अब तक आप virtual functions create करने के नियम पढ़ चुके है। आइये अब देखते है की आप किस प्रकार virtual functions को create कर सकते है।
Creating & Using C++ Virtual Functions

Virtual functions define करने के लिए आप virtual keyword यूज़ करते है। इसका general syntax नीचे दिया जा रहा है। 

virtual data-type function-name(parameters-list)
{
       // Definition of virtual function 

Example :-


#include
using namespace std;
class Color
{
      public:
             // Virtual function
             virtual void display()
             {
                     cout<<“Base : Red Green Blue”<
             }
}; 
class RedColor : public Color
{
      public:
             void display() 
             {
                    cout<<“Derived : Red”;
             }    
}
int main()
{
    // Base class object
    Color baseobj;
 

    // Derived class object

    RedColor derivedobj;
    // Base class pointer

    Color *basepntr; 
    // Assigning base class obj to base class pointer 

    basepntr = &baseobj;
 

    // Base class display() function will be executed

    basepntr->display();
 

    // Assigning derived class obj to base class pointer 

    basepntr = &derivedobj;
 

    // Derived class display() function will be executed;

    basepntr->display();  
    return 0;
}

जैसा की आप देख सकते है base class में display() function को virtual keyword के साथ define किया गया है। इस program को जब आप execute करेंगे तो ये base class और derived class दोनों के ही display() function का result show करेगा।

Base : Red Green Blue
Derived : Red 

Pure Virtual Function 

जब आप base class में virtual function create करते है और derived class में भी same ही function create करते है तो आप base class के function को बहुत कम यूज़ करते है या फिर करते ही नहीं है। ऐसी situation में आपको base class के virtual function की definition provide करने की कोई आवश्यकता नहीं होती है। 

इस situation में आप एक ऐसा virtual function create करते है जो कुछ भी नहीं करता है। इस तरह के function को pure virtual function कहा जाता है। Pure virtual function create करने के लिए आप normal virtual के declaration के बाद definition की बजाय assignment operator (=) लगाकर कर उसे 0 assign कर देते है। 

virtual data-type function-name(parameter-list) = 0;  

उदाहरण के लिए ऊपर दिए program के लिए pure virtual function इस प्रकार create किया जायेगा। 

virtual void display() = 0; 

Inline Functions in C++

Introduction to C++ Inline Functions

जब program किसी normal function को execute करता है तो सबसे पहले CPU function call statement के बाद वाले statement का memory address store करता है। ऐसा इसलिए किया जाता है ताकि function के execute होने के बाद इस statement से execution शुरू किया जा सके।
j

इसके बाद compiler arguments को stack में copy करता है। इसके बाद control function को transfer हो जाता है। इसके बाद CPU function code को execute करता है और return value को register में store करता है। इसके बाद control वापस function calling statement को चला जाता है।

जब किसी function का calling time उसके execution time से अधिक होता है तो उसे overhead माना जाता है। Calling time वह time होता है जो CPU को function call और function execution के बीच लगता है।

क्योंकि CPU एक memory location से दूसरी memory location पर switch करता है और उसके बाद function को execute करता है और फिर उसके बाद वापस actual location पर return करता है। इस process में काफी अधिक समय लग जाता है।

बड़े functions जिनको execute होने में अधिक समय लगता है उनके लिए इस time को appropriate माना जा सकता है। लेकिन छोटे functions जो बहुत कम समय में execute हो जाते है उनके लिए एक memory location से दूसरी memory location में switch होने का time waste करना appropriate नहीं होता है।

हालाँकि हो सकता है की अभी ये time आपको महत्वपूर्ण ना लगे लेकिन जब बात बड़े projects की आती है तो execution time reduce करना एक priority होती है।

इस situation में छोटे functions द्वारा waste किये जा रहे function calling time को save करने के लिए C++ आपको एक mechanism provide करती है जिसे inline function कहते है।

Inline function C++ में एक important feature है। जब आप किसी function को inline define करते है तो उस function को execute करने के लिए compiler memory location switch नहीं करता है। इसके बजाय compiler calling statement को function definition से replace कर देता है। ये काम compiler के द्वारा compile time पर किया जाता है।

एक बात ध्यान रखने योग्य है की जब आप किसी function को inline define करते है तो ये compiler के लिए सिर्फ एक request होती है। जरुरी नहीं की compiler इस function को inline करे। Compiler इसे ignore भी कर सकता है।
यदि किसी function में loop होता है, static variables होते है, switch और goto statement होते है या फिर यदि function recursive होता है तो ऐसी situation में compiler function को inline नहीं करता है।

जब आपको program की efficiency बढ़ाने की आवश्यकता हो तो आप inline function को use कर सकते है। Macros के साथ आने वाली problems को eliminate करने के लिए भी inline functions को use किया जाता है।

Advantages of Inline Functions
 
1. क्योंकि function call को function definition से replace कर दिया जाता है इसलिए function call का overhead नहीं होता है। 
2. Argument variables को stack में store करने का overhead भी inline function को use करने से remove हो जाता है।
3. Inline function के use से function के वापस return होने का overhead भी नहीं होता है।

Disadvantages of Inline Functions 

1. Inline function use करने से program बड़ा हो जाता है और executable file की size बढ़ जाती है।
2. क्योंकि function को compile time पर inline किया जाता है, इसलिए यदि आप किसी inline function के code को change करते है तो आपको उन सभी programs को भी recompile करना होगा जो की इस function को use कर रहे है।
3. जब आप inline function को header में use करते है तो इससे आपकी header file बड़ी हो जाती है।
4. जैसा की पहले बताया गया inline function use करने से executable file की size बढ़ जाती है। ऐसा होने से इस executable file के लिए अधिक memory की आवश्यकता पड़ती है। आवश्यकता से कम memory होने पर program की efficiency पर फर्क पड़ता है।

Syntax & Example of Inline Functions

inline return_type function_name(parameter list)
{
     // Function body
}

जैसा की आप ऊपर दिए गए syntax में देख सकते है function को inline बनाने के लिए उसकी normal definition से पूर्व inline keyword का प्रयोग किया गया है।

आइये अब inline function के use को एक उदाहरण के माध्यम से समझने का प्रयास करते है।

#include
using namespace std;


// Inline function add
inline int add(int x, int y)
{
      return x+y;
}

int main()
{
    int a,b;

    cout<<“Please enter first number : “;
    cin>>a;

    cout<<“Please enter second number : “;
    cin>>b;

    cout<
    cout<<“Sum of a & b is :”<

    return 0;  
}

Output :-
                 Please enter first number 
                  9
                 Please enter second number 
                  8
                 Sum of a & b is : 17 

Thursday, December 5, 2019

Strings in C++

Introduction to C++ Strings
Strings characters की sequence होती है। आसान शब्दों में कहें तो जब अक्षरों को एक क्रम में लिखा जाता है तो string बनती है। उदाहरण के लिए Happy Republic Day एक string है।

C++ में किसी अक्षर को store करने के लिए आप char type का variable create करते है। लेकिन strings को store करने के लिए C++ कोई भी built in data type provide नहीं करती है।

हालाँकि आप char array के माध्यम से strings store कर सकते है लेकिन ये एक पुराना तरीका है जो C Language में यूज़ किया जा चूका है। साथ ही जब आप strings को char array के माध्यम से store करते है तो उन strings पर operations perform करना बहुत difficult हो जाता है।

ऐसे में C++ आपको string class provide करती है जिससे आप strings को store भी कर सकते है और उन पर operations भी perform कर सकते है। आइये इसके बारे में जानने का प्रयास करते है।

C++ String Class

जैसा की मैने आपको पहले बताया strings को store करने और उन पर different operations perform करने के लिए C++ आपको string class provide करती है। String class के object को किसी built in type के variable की तरह ही handle किया जा सकता है।
String class में 3 constructors available है। पहला constructor empty string object create करने के लिए है। इसका syntax नीचे दिया जा रहा है।

String();

दूसरा constructor argument के रूप में pass की गयी string से string object create करता है। इसका syntax इस प्रकार है।

String(char *str); 

तीसरा constructor argument के रूप में एक string object ही लेता है और उसकी string से नए object को create करता है। इसका syntax नीचे दिया जा रहा है।

String(string &str); 

किसी भी program में string class को यूज़ करने के लिए आपको file include करनी पड़ती है। आइये अब देखते है की आप किस प्रकार string objects create कर सकते है। 

Creating String Objects 

String class के objects आप किसी normal class के objects की तरह ही create कर सकते है। लेकिन क्योंकि string class में 3 constructors defined है इसलिए आप string objects भी 3 तरह से create कर सकते है।

#include
#include
int main()
{
    // Will call constructor with char argument 
    string st1(“Happy Republic Day”);  
    // Will call normal constructor & create empty string

    string st2;  


    // Will call constructor with string object argument

    st2 = st1; 
    cout<
    cout<
   
    return 0;

ऊपर दिया गया programe का आउटपुट यह होगा -

                          Happy Republic Day

                          Happy Republic Day

Functions Of String Class

String class आपको वो सभी built in functions provide करती है जो आपको strings के साथ work करने के लिए necessary होते है। जब भी आप string class का कोई object create करते है तो ये functions आपको automatically available हो जाते है।


Functions 
Explanation 
begin() 
ये एक iterator type का function है। ये function call किये जाने पर string की beginning का pointer return करता है।    
end()   
ये भी एक iterator type का function है। ये function call होने पर string का end pointer return करता है।    
append()  
यदि आप किसी एक string के आखिर में कोई दूसरी string जोड़ना चाहते है तो append() function यूज़ कर सकते है। इस function को string object के साथ call किया जाता है और argument के रूप में आप कोई दूसरी string या string object pass कर सकते है। Ex. strngobj1.append(strngobj2);       
at()  
यदि आप string में particular location से किसी character को retrieve करना चाहते है तो इसके लिए at() function यूज़ कर सकते है। उदाहरण के लिए यदि आप HELLO string में से तीसरे number का character retrieve करना चाहते है तो आप इस प्रकार at() method को call करेंगे। strngobj.at(3)        
compare()  
यदि आप किन्हीं दो strings को equality के लिए compare करना चाहते है तो compare() method यूज़ कर सकते है। इस method को आप string object से call करते है और argument के रूप में दूसरी string pass करते है। Ex. strngobj1.compare(strngobj2);     
empty() 
यदि आप पता करना चाहते है की कोई string empty() है या नहीं तो आप empty() function call कर सकते है। यदि string empty होती है तो ये function true return करता है। Ex. strngobj.empty();    
erase()
यदि आप string से कुछ characters erase करना चाहते है तो इसके लिए erase() function यूज़ कर सकते है। इस function में 2 argument pass किये जाते है। पहला argument वह location होती है जँहा से आप characters को remove करना चाहते है। दूसरा argument जितने characters आप remove करना चाहते है उनकी सँख्या होती है। उदाहरण के लिए HELLO string में 3rd location से 2 character remove करने के लिए आप इस प्रकार function call कर सकते है।
Ex. strngobj.erase(3,2);     
find()
यदि आप किसी string में कोई sub-string find करना चाहते है तो इसके लिए आप find() method यूज़ कर सकते है। इस method में आप सीधे sub-string या कोई object pass कर सकते है।
Ex. strngobj.find(“substring”);       
length()
ये function string की length return करता है।  
swap()  
यदि आप किन्हीं दो objects की string को आपस में swap करना चाहते है तो इसके लिए swap() function यूज़ कर सकते है। इस function में आप दूसरा string object argument के रूप में pass करते है और इसकी value call किये जाने वाले string object की value से swap हो जाती है।  Ex. strngobj1.swap(strngobj2)     




Operators in C++

Introduction to C++ Operators

किसी भी C++ program में data पर operations perform किये जाते है। इसके लिए सबसे पूर्व data को variables के द्वारा computer memory में store किया जाता है। इसके बाद C++ द्वारा supported operators को use करते हुए उस data पर operations perform किये जाते है।

उदाहरण के लिए आप दो variables जिनमे integer values store की गयी है उनके बीच addition operation perform करते है। ऐसा आप addition operator (+) द्वारा करेंगे।
C++ आपको अलग अलग operations perform करने के लिए अलग अलग type के operators provide करती है। जिन्हें आप variables के साथ प्रयोग करते है।
उदहारण के लिए यदि आप program में arithmetic operations जैसे की addition, subtraction, division आदि perform करना चाहते है तो इसके लिए arithmetic operators +, -, / आदि का प्रयोग करते है।
उसी प्रकार यदि आप program में logic (data को compare करना) perform करना चाहते है तो उसके लिए relational operators जैसे की <, >, = आदि use करते है।
Operators के साथ define किये जाने वाले variables operands कहलाते है। उदाहरण के लिए आपने 2 variables a और b create किये है। अब आप इन दोनों के बीच addition operation perform करके result c variable में store करना चाहते है। आप इस प्रकार code लिखते है।
                           c = a + b;
C++ में दो तरह के operators पाए जाते है। इनके बारे में निचे बताया जा रहा है।

Binary – ऐसे operators जो दो operands के साथ operation perform करते है binary operators कहलाते है। उदाहरण के लिए सभी arithmetic operators binary operators होते है। 
Unary – ऐसे operators जो एक operand के साथ operation perform करते है unary operator कहलाते है। उदाहरण के लिए increment (++) और decrement (–) operators unary operators होते है। इन्हे एक ही variable (operand) के साथ use किया जाता है। 
C++ में available विभिन्न operators के बारे में आगे detail से बताया जा रहा है।
Arithmetic Operators 
Arithmetic operators वे operators होते है जिनके द्वारा arithmetic operations perform किये जाते है। C++ द्वारा supported arithmetic operators की list निचे दी जा रही है।
Operator
Explanation 
Syntax
+ (Addition)
Adds a and b
a + b
– (Subtraction)
Subtract b from a
a – b
* (Multiplication)
Multiply a and b
a * b
/ (Division)
Divide a by b
a / b
% (Modulus)
Divide a by b and return remaining value 
a % b

Relational Operators
Relational operators data को compare करने या data के बीच relation define करने के लिए प्रयोग किये जाते है। ये operators true और false के रूप में boolean value return करते है। C++ में available relational operators की list निचे दी जा रही है।

Operator
Explanation 
Syntax
> (Greater than)
Checks whether a is greater than b
a > b
< (Lesser than)
Checks whether a is lesser than b

a < b
>= (Greater than & equal)
Checks whether a is greater than & equal to b 
a >= b
<= (Lesser than & equal)
Checks whether a is lesser than & equal to
a <= b
== (Equal)
Checks whether a is equal to b 
a == b
!= (Not equal)
Checks whether a is not equal to b
a != b
Logical Operators
Logical operators program में logic perform करने के लिए प्रयोग किये जाते है। ये operators conditional expressions के बीच प्रयोग किये जाते है और boolean value true या false return करते है। C++ में available logical operators के बारे में निचे दिया जा रहा है।  

Operator
Explanation 
Syntax
&& (AND)
returns true if both conditions are true
cond1 && cond2
|| (OR)
returns true if any of the two condition is true
cond1 || cond2
! (NOT)
returns true if condition is not true, Unary operator 
!cond
Bitwise Operators
Bitwise operators program में bit operations perform करने के लिए प्रयोग किये जाते है। सबसे पहले variables की values को bits में convert किया जाता है और उसके बाद उन पर operations perform किये जाते है। ये operators true और false return करते है। C++ में available bitwise operators की list निचे दी जा रही है।

Operator
Explanation 
Syntax
& (Binary AND)
Returns bits which are identical in a and b
a & b
| (Binary OR)
Returns all bits from a and b

a | b
^ (XOR)
Returns bits which are in a but not in b
a ^ b
~ (Binary Ones compiment)
Unary operator, Change 0 bits to one and 1 bit to 0
~a
<< (Left Shift)
Shifts bits of a to left by number given on right side of <<
a << number
>> (Right Shift)
Shifts bits of a to right by number given on right side of >>
a >> number
Assignment Operators
Program में assignment operations perform करने के लिए assignment operators प्रयोग किये जाते है। C++ में available assignment operators के बारे में निचे दिया जा रहा है।

Operator
Explanation 
Syntax
= (Assignment)
Assign value of a to b
a = b
+= (Plus and assignment)
Add value of a & b then assign result to a

a += b
-= (Minus and assignment)
Subtract value of b from a then assign result to a
a -= b
*= (Multiply and assignment)
Multiply a & b then assign result to a
a *= b
/= (Divide and assignement)
Divide a by b then assign result to a
a /= b
%= (Modulus and assignment)
Divide a by b then assign remaining value to a
a %= b
Conditional Operator (?:)
C++ आपको conditional operator provide करती है। यह operator ? और : के combination से बनता है। यह operator if else statement का short रूप होता है। इस operator का general syntax निचे दिया जा रहा है।

                           condition ? true-part : false-part

जैसा की आप ऊपर दिए गए syntax में देख सकते है सबसे पूर्व condition define की जाती है। इसके बाद question mark (?) symbol लगाया जाता है।
इस symbol के बाद वह statement लिखा जाता है जो condition true होने पर use किया जाएगा। इसके बाद colon (:) symbol लगाया जाता है। Colon symbol के बाद वह code लिखा जाता है जो condition के true होने पर use किया जाएगा।
इस operator को मुख्यतः condition के आधार पर variables को value assign करने के लिए प्रयोग किया जाता है।
sizeof() Operator 
C++ में sizeof operator किसी भी variable की size return करता है। इसका syntax निचे दिया जा रहा है।

                       sizeof(variable-name);

जिस variable की size आप पता करना चाहते है उसका नाम brackets में लिखा जाता है।
* (Pointer) Operator 
Pointer variable define करने के लिए pointer operator का प्रयोग किया जाता है। इस operator का general syntax निचे दिया जा रहा है।

                        data-type *variable-name;

Pointer variable का प्रयोग किसी दूसरे operator का address store करने के लिए किया जाता है।

& (address of) Operator 
C++ में address of operator किसी भी variable का address return करता है। इस operator का syntax निचे दिया जा रहा है।

                        pointer-variable = &variable-name;

Address of operator को उस variable के नाम से पूर्व define किया जाता है जिसका variable आप access करना चाहते है। Address को किसी pointer variable में store किया जाता है।