C मध्ये स्ट्रिंग घोषित करताना त्रुटी. char* प्रकारावर स्ट्रिंग क्लास वापरण्याचे फायदे आणि तोटे काय आहेत? कन्स्ट्रक्टर वापरून आरंभीची उदाहरणे

व्हायबर डाउनलोड करा 07.05.2019
व्हायबर डाउनलोड करा

C++ मधील स्ट्रिंग्स

स्ट्रिंग हा वर्णांचा क्रम (ॲरे) असतो. अभिव्यक्तीमध्ये एकच वर्ण आढळल्यास, ते संलग्न करणे आवश्यक आहे एकल कोट्स. अभिव्यक्तींमध्ये वापरल्यास, स्ट्रिंग मध्ये संलग्न आहे दुहेरी अवतरण.ओळीच्या चिन्हाचा शेवट शून्य वर्ण आहे \0 . C++ मध्ये, चिन्हे वापरून स्ट्रिंगचे वर्णन केले जाऊ शकते चार), ज्यामध्ये लाइन टर्मिनेटर संचयित करण्यासाठी जागा प्रदान केली जावी.

उदाहरणार्थ, 25 वर्णांचे स्ट्रिंग वर्णन असे दिसेल:

तुम्ही स्ट्रिंगच्या ॲरेचे वर्णन देखील करू शकता:

प्रत्येकी 25 बाइट्सच्या 3 ओळींचा ॲरे परिभाषित केला आहे.

पॉइंटर्ससह कार्य करण्यासाठी आपण वापरू शकता ( चार*). पहिल्या वर्णाचा पत्ता पॉइंटरचे प्रारंभिक मूल्य असेल.

स्ट्रिंग्स घोषित आणि आउटपुट करण्याचे उदाहरण पाहू.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21

# "stdafx.h" समाविष्ट करा
#समाविष्ट करा
नेमस्पेस std वापरून;
इंट मुख्य()
{
setlocale(LC_ALL,"Rus" );
// 3 ओळींचे वर्णन करा, s3 एक पॉइंटर आहे
char s2[ 20 ], * s3, s4[ 30 ] ;
cout<< «s2=» ; cin >> s2; //इनपुट स्ट्रिंग s2
cout<< «s2=» << s2<< endl;
// s3 मध्ये s4 साठवलेल्या ओळीचा पत्ता लिहा. आता व्हेरिएबल्समध्ये
//(पॉइंटर्स) s3 आणि s4 समान पत्त्याचे मूल्य संचयित करतात
s3= s4;
cout<< «s3=» ; cin >> s3; //इनपुट लाइन s3
//ओळी s3 आणि s4 स्क्रीनवर आउटपुट करा, जरी असाइनमेंट s3=s4;
//आता s3 आणि s4 समान आहेत
cout<< «s3=» << s3<< endl;
cout<< «s4=» << s4<< endl;
सिस्टम ("विराम द्या");
परतावा 0;
}

कार्यक्रमाचा निकाल:

परंतु हे लक्षात घ्यावे की जर वापरकर्त्याने एका व्हेरिएबलमध्ये स्पेसद्वारे विभक्त केलेले शब्द प्रविष्ट केले तर प्रोग्राम वेगळ्या पद्धतीने कार्य करेल:

संपूर्ण मुद्दा म्हणजे फंक्शन cinसमोर आलेल्या जागेपर्यंतच्या ओळींमध्ये प्रवेश करते. अधिक बहुमुखी कार्य आहे getline.

cin.getline(char*s, int n);

कीबोर्डवरून स्ट्रिंग प्रविष्ट करण्यासाठी डिझाइन केलेले sरिक्त स्थानांसह, ओळीमध्ये पेक्षा जास्त नसावे nवर्ण म्हणून, जागा असलेल्या ओळी योग्यरित्या प्रविष्ट करण्यासाठी, आमच्या प्रोग्राममध्ये बदलणे आवश्यक आहे cin>>sवर cin.getline(s, 80).

स्ट्रिंग ऑपरेशन्स

ॲरे प्रोसेसिंग अल्गोरिदम वापरून किंवा स्पेशल स्ट्रिंग प्रोसेसिंग फंक्शन्स वापरून स्ट्रिंगवर अक्षरांच्या ॲरेवर प्रक्रिया केली जाऊ शकते, त्यापैकी काही खाली दिलेली आहेत. या स्ट्रिंगसह कार्य करण्यासाठी तुम्हाला लायब्ररी समाविष्ट करणे आवश्यक आहे cstring.

संख्या स्ट्रिंगमध्ये रूपांतरित करण्यासाठी, तुम्ही फंक्शन वापरू शकता sprintfलायब्ररीतून stdio.h.

स्ट्रिंगसह कार्य करण्यासाठी काही कार्ये:

फंक्शन प्रोटोटाइप कार्य वर्णन
size_t strlen(const char*s) बाइट्समध्ये स्ट्रिंग s च्या लांबीची गणना करते.
char *strcat(char *dest, const char *scr) स्ट्रिंग डेस्टच्या शेवटी स्ट्रिंग src जोडते, परिणामी स्ट्रिंग परिणाम म्हणून परत केली जाते
char *strcpy(char *dest, const char *scr) dest द्वारे निर्देशित मेमरी स्थानावर string scr कॉपी करते
char strncat(char *dest, const char *dest, size_t maxlen) स्ट्रिंग डेस्टच्या शेवटी स्ट्रिंग src चे maxlen वर्ण जोडते
char *strncpy(char *dest, const char *scr, size_t maxlen) स्ट्रिंग src चे maxlen अक्षरे dest द्वारे निर्देशित केलेल्या मेमरी स्थानावर कॉपी करते
int ctrcmp(const char *s1, const char *s2) अप्परकेस आणि लोअरकेस अक्षरांमधील फरक लक्षात घेऊन शब्दकोशातील दोन स्ट्रिंगची तुलना करते, जर स्ट्रिंग जुळत असेल तर फंक्शन 0 मिळवते, s2 च्या आधी s1 वर्णक्रमानुसार असल्यास 1 आणि अन्यथा 1 मिळवते.
int strncmp(const char *s1, const char *s2, size_t maxlen) दोन स्ट्रिंग्सच्या मॅक्सलेन वर्णांची लेक्सोग्राफिकल क्रमाने तुलना करते, स्ट्रिंग जुळल्यास फंक्शन 0 मिळवते, s1 ला s2 च्या आधी वर्णक्रमानुसार ठेवल्यास 1 आणि अन्यथा 1 परत येतो.
दुहेरी atof(const char*s) स्ट्रिंगला वास्तविक संख्येमध्ये रूपांतरित करते;
लांब atol (const char *s) स्ट्रिंगला लांब पूर्णांकामध्ये रूपांतरित करते, रूपांतरण अयशस्वी झाल्यास 0 परत करते
char *strchr(const char *s, int c); वर्णाच्या पहिल्या घटनेसाठी पॉइंटर परत करते cनिर्देशित केलेल्या ओळीकडे s. चिन्ह असल्यास cआढळले नाही, NULL परत करते
char *strupr(char*s) s द्वारे निर्देशित केलेल्या स्ट्रिंगमधील वर्णांना अपरकेस वर्णांमध्ये रूपांतरित करते आणि नंतर ते परत करते

स्ट्रिंग डेटा प्रकार

अक्षरांच्या ॲरेच्या रूपात स्ट्रिंग्ससह कार्य करण्याव्यतिरिक्त, C++ मध्ये एक विशेष डेटा प्रकार आहे स्ट्रिंग. या प्रकारच्या व्हेरिएबल्स एंटर करण्यासाठी तुम्ही वापरू शकता cin, किंवा विशेष कार्य getline.

getline(cin,s);

येथे s- इनपुट प्रकार व्हेरिएबलचे नाव स्ट्रिंग.

जेव्हा तुम्ही या प्रकारच्या व्हेरिएबलची व्याख्या करता, तेव्हा तुम्ही त्या व्हेरिएबलला लगेच मूल्य नियुक्त करू शकता.

string var(s);

येथे var- चल नाव, s- स्ट्रिंग स्थिरांक. या विधानाच्या परिणामी, एक व्हेरिएबल तयार होते varप्रकार स्ट्रिंग, आणि स्ट्रिंग स्थिरांकाचे मूल्य त्यावर लिहिले जाते s. उदाहरणार्थ,

स्ट्रिंग v("हॅलो");

एक स्ट्रिंग तयार केली आहे v, ज्यामध्ये मूल्य लिहिले आहे नमस्कार.

मध्ये प्रवेश i-thरेखा घटक sप्रकार स्ट्रिंगमानक पद्धतीने चालते s[मी]. वरील ओळी सारख्या स्ट्रिंगखालील ऑपरेशन्स परिभाषित केल्या आहेत:

  • असाइनमेंट, उदाहरणार्थ s1=s2;
  • स्ट्रिंग्स एकत्र करणे (s1+=s2 किंवा s1=s1+s2) - स्ट्रिंग s1 मध्ये स्ट्रिंग s2 जोडते, परिणाम स्ट्रिंग s1 मध्ये संग्रहित केला जातो, स्ट्रिंग एकत्र करण्याचे उदाहरण:
  • शब्दकोषाच्या क्रमावर आधारित स्ट्रिंग तुलना: s1=s2, s1!=s2, s1 s2, s1<=s2, s1>=s2 - परिणाम तार्किक मूल्य असेल;

सारख्या स्ट्रिंग्सवर प्रक्रिया करताना स्ट्रिंगखालील कार्ये वापरली जाऊ शकतात:

  • s.substr(pos, लांबी)- स्ट्रिंगमधून सबस्ट्रिंग मिळवते s, संख्या पासून सुरू स्थानलांब लांबीवर्ण;
  • s.rempty()- स्ट्रिंग असल्यास खरे मिळवते sरिक्त, खोटे - अन्यथा;
  • s.insert(pos, s1)- एक ओळ घालते s1ओळ करण्यासाठी s, स्थिती पासून सुरू स्थान;
  • s.remove(pos, length)- ओळीतून हटवते sसबस्ट्रिंग लांबीलांब स्थानवर्ण;
  • s.find(s1, pos)- स्ट्रिंगच्या पहिल्या घटनेची संख्या मिळवते s1ओळ करण्यासाठी s, शोध क्रमांकाने सुरू होतो स्थान, पॅरामीटर स्थानअनुपस्थित असू शकते, या प्रकरणात शोध ओळीच्या सुरुवातीपासून सुरू होतो;
  • s.first(s1, pos)- स्ट्रिंगमधून कोणत्याही वर्णाच्या पहिल्या घटनेची संख्या मिळवते s1ओळ करण्यासाठी s, शोध क्रमांकाने सुरू होतो स्थान, जे गहाळ असू शकते.

स्ट्रिंगसाठी रशियन भाषा

मला वाटते की आपण आधीच लक्षात घेतले आहे की रशियन अक्षरे आउटपुट करताना, कन्सोलमध्ये "डावीकडे" वर्ण दिसतात. हा गैरसमज टाळण्यासाठी, आपल्याला तृतीय-पक्ष कार्य वापरण्याची आवश्यकता आहे CharToOemA. लायब्ररी कनेक्ट करत आहे windows.h, हे आवश्यक आहे जेणेकरून आमचे फंक्शन स्ट्रिंगला दुसऱ्या एन्कोडिंगमध्ये रूपांतरित करू शकेल. तसेच, आम्हाला अतिरिक्त वर्ण ॲरेची आवश्यकता आहे. प्रोग्रामचा स्त्रोत कोड यासारखा दिसेल:

1
2
3
4
5
6
7
8
9
10
11
12
13
14

# "stdafx.h" समाविष्ट करा
#समाविष्ट करा
#समाविष्ट करा
नेमस्पेस std वापरून;
इंट मुख्य()
( setlocale(LC_ALL, "Rus") ;
char s[ 255 ] = ( "मला बदलण्याची गरज आहे"} ;
char * pre = नवीन char [ 255 ] ;
CharToOemA(s, pre); // रूपांतरित करा
cout<< s;
पूर्व हटवा;
प्रणाली("विराम>>रिक्त");
परतावा 0;
}

नुकतीच वर्णन केलेली पद्धत खूपच गैरसोयीची आहे. परंतु "रशियन" समस्येवर एक सोपा उपाय आहे. तुम्ही बघू शकता, त्याऐवजी प्रोग्राम setlocale() फंक्शन वापरतो, मुख्य फंक्शनमध्ये खालील बांधकाम समाविष्ट करणे अधिक सोयीचे आहे.

p»їविश्वसनीय एसइओ एजन्सी इंडिया लहान व्यवसायांचे उत्पन्न वाढवू शकते

80% वापरकर्ते खरेदी करण्यापूर्वी Google आणि इतर शोध इंजिनांवर शोध घेतात आणि शोध इंजिनद्वारे व्युत्पन्न केलेल्या 50% पेक्षा जास्त चौकशी रूपांतरित होतात. ही दोन आकडेवारी शोध इंजिन ऑप्टिमायझेशनचे महत्त्व सिद्ध करतात. अशी अनेक आकडेवारी आणि तथ्ये आहेत जी स्पष्ट करतात: कोणत्याही लहान, मध्यम किंवा मोठ्या व्यवसायासाठी व्यावसायिक एसइओ सेवांची आवश्यकता असते. लहान व्यवसाय आणि स्टार्टअप्सना अनेकदा बजेटच्या समस्यांना तोंड द्यावे लागते. त्यांचा महसूल वाढवण्यासाठी ते त्यांच्या बजेटमध्ये सर्वोत्तम SEO सेवा मिळवण्यासाठी भारतातील कोणत्याही विश्वासार्ह एसइओ एजन्सीची मदत घेऊ शकतात.
शोध ग्राहकांच्या मनावर खूप प्रभाव पाडतो. शोध इंजिन लँड, Moz, SEO जर्नल, डिजिटल मार्केटर्स इंडिया, हबस्पॉट इत्यादी विविध अधिकृत वेबसाइटवर प्रमुख शोध इंजिन ऑप्टिमायझेशन तज्ञांनी शेअर केलेल्या विविध आकडेवारीनुसार. SEO बहुतेक लीड्स कॅप्चर करते. तसेच, सेंद्रिय शोध परिणामांमधून येणाऱ्या लीड्सचा रूपांतरण दर जास्त असतो. ही आकडेवारी आणि ग्राहक वर्तन हे स्पष्ट करतात की सर्वोत्तम SEO सेवा ही लक्झरी नसून कोणत्याही व्यवसायासाठी आवश्यक आहे.
स्पर्धेला मागे टाकण्यासाठी आणि व्यवसाय वाढीसाठी प्रत्येक संस्थेने शोध इंजिन ऑप्टिमायझेशन सेवा वापरणे आवश्यक आहे. मोठ्या ब्रँड्स उच्च एसइओ कंपनी किंवा एसइओ तज्ञाद्वारे ऑफर केलेल्या तज्ञ SEO सेवेसाठी पुरेसे पैसे गुंतवू शकतात, परंतु लहान व्यवसाय मालक कमी बजेटमुळे या सेवेच्या गुणवत्तेशी तडजोड करतात. लहान व्यवसाय आणि स्टार्टअप्स व्यावसायिक एसइओ सेवेद्वारे तयार केल्या जाऊ शकणाऱ्या संधी सोडतात किंवा स्वस्त एसइओ सेवा वापरतात ज्यामुळे कोणतेही सकारात्मक परिणाम मिळत नाहीत.
लहान व्यवसाय मालक आणि स्टार्टअप मर्यादित बजेटमध्येही व्यावसायिक SEO सेवांचा लाभ घेऊ शकतात. भारताबाहेरील विश्वासार्ह एसइओ कंपनी शोधणे हा सर्वोत्तम उपाय आहे. भारतात, अनेक एसइओ तज्ञ आहेत जे डिजिटल मार्केटिंग एजन्सीसोबत काम करत आहेत आणि उद्योगातील सर्वोत्तम सेवा देतात. ते तुम्हाला तुमच्या बजेटमध्ये आवश्यक SEO सेवा देऊ शकतात. कमी दरात चांगल्या सेवा मिळण्यासाठी एसइओ एजन्सी इंडियाशी वेतनाची वाटाघाटी केली जाऊ शकते. तथापि, स्वस्त एसइओ सेवेला बळी पडू नका जी कमी शुल्क आकारते आणि अधिक देण्याचे वचन देते कारण कौशल्य स्वतःच्या खर्चावर येते. तुमच्या व्यवसायासाठी कंपनीशी करार करण्यापूर्वी तुम्ही पोर्टफोलिओ पाहणे आवश्यक आहे किंवा योग्य प्रश्न विचारणे आवश्यक आहे.
भारतातील एसइओ तज्ञ शोध इंजिन ऑप्टिमायझेशनच्या सर्वोत्तम पद्धतींमध्ये कुशल आहेत. तसेच, भारतामध्ये काही एसइओ विशेषज्ञ आहेत जसे की ॲश व्यास, जे नमूद केलेल्या बजेटमध्ये व्यवसायासाठी सर्वोत्तम शोध इंजिन ऑप्टिमायझेशन धोरण तयार करण्यात माहिर आहेत. SEO व्यावसायिक एक स्पष्ट योजना तयार करतील आणि अपेक्षित परिणाम काय असू शकतात हे देखील सामायिक करतील. अशा प्रकारे तुम्ही तुमच्या गुंतवणुकीची आणि परताव्याची चांगली जाणीव ठेवू शकता. हे चांगले व्यवसाय निर्णय घेण्यास मदत करते.
भारतातील एक विश्वासार्ह एसइओ कंपनी शोधणे आणि करार करणे ही चांगली कल्पना आहे जी शक्य तितक्या लवकर सर्वोत्तम SEO सेवा देते. तुमची वेबपेजेस अनुक्रमित करणे आणि शोध इंजिनमध्ये तुमचे कीवर्ड वाढवणे सुरू करण्यासाठी तुम्ही लहान बजेट आणि मर्यादित क्रियाकलापांसह सुरुवात करू शकता. सर्वोत्तम एसइओ सेवांमध्ये गुंतवणूक करण्यासाठी तुमच्याकडे हजारो डॉलर्स असतील अशा परिपूर्ण वेळेची किंवा दिवसाची वाट पाहू नका. जेव्हा तुम्ही तुमच्या मार्केटिंग पध्दतीने आक्रमक होऊ शकता तेव्हा लवकर सुरुवात केल्याने तुम्हाला जलद परिणाम मिळण्यास मदत होईल. भारताबाहेरील एक विश्वासार्ह एसइओ कंपनी तुम्हाला चांगले परिणाम देण्यासाठी तुमच्या वर्तमान आणि भविष्यातील योजना परिभाषित करण्यात मदत करेल. अधिक अनुक्रमित पृष्ठे क्रमवारीत वाढ करतात आणि सतत व्यावसायिक SEO पद्धतींसह बनवलेल्या तुमच्या व्यवसायाचा विश्वासार्ह ब्रँड चौकशी, व्यवसाय आणि महसूल दुप्पट करेल. कोणताही लहान व्यवसाय व्यावसायिक एसइओ सेवांमध्ये दोन-अंकी गुंतवणूकीसह सुरू करू शकतो. भारतात अशा अनेक एसइओ एजन्सी आहेत ज्या कमी बजेट ऑफर करतात तरीही ओरिएंटेड सर्च इंजिन ऑप्टिमायझेशन सेवांचा परिणाम आहे.

निर्वासन पासून सर्वेक्षण

  • क्रेगव्यू

    12.04.2018

    p»ї रिअल इस्टेट आणि सामान्य विक्रीमध्ये ग्राहकांशी संबंध प्रस्थापित करण्याचे महत्त्व

    ग्राहकांशी संबंध प्रस्थापित करण्याचे महत्त्व.
    ग्राहकाशी संबंध प्रस्थापित करणे कमावले पाहिजे आणि विक्री प्रक्रियेचा एक अविभाज्य भाग म्हणून संपर्क साधला पाहिजे.
    ग्राहक आणि स्वत:ला एकमेकांशी प्रत्यक्ष संबंध ठेवण्यासाठी दोन गोष्टींचा समावेश होतो!
    प्रथम, आपण जागरूक असणे आणि तेथे असणे आवश्यक आहे! दुसरे तुम्ही हे समजून घेतले पाहिजे की या प्रक्रियेदरम्यान दोन भिन्न अवस्था होतील.
    ए-तेथे व्हा-याचा अर्थ काय?
    o बहुतेक लोक दुसऱ्या व्यक्तीचे बोलत असताना ऐकत नाहीत. साधारणपणे ते त्यांचे पुढील उत्तर किंवा विधान तयार करण्यात इतके व्यस्त असतात की ते कदाचित ऐकू शकत नाहीत.
    o जर हे तुमच्यासारखे वाटत असेल, तर तिथे असणे म्हणजे शांत राहा आणि ऐका!
    ब- पहिला किंवा प्रारंभिक टप्पा म्हणजे काय?
    o सामान्यत: ग्राहकांच्या मनात स्वत:ला स्थापित करण्यासाठी तुमच्याकडे फक्त काही मिनिटे असतात ज्यांच्याशी ते व्यवहार करू इच्छितात.
    o जेव्हा शंका असेल तेव्हा प्रथम प्रश्न विचारणे चांगले आहे जे त्यांना बाहेर काढतील आणि स्वतःबद्दल बोलतील.
    o व्यावसायिक म्हणून दिसणे देखील नेहमीच सुरक्षित असते - माझा अर्थ उदास किंवा कोरडा असा नाही, परंतु ज्याला ते काय करत आहेत हे माहित आहे आणि बोलतो आणि भाग पाहतो.
    सी-इतर टप्पे
    o जसजसा वेळ पुढे जाईल तसतसे संभाषण आणि प्रश्न यांच्या माध्यमातून तुम्ही तुमची क्षमता प्रस्थापित कराल किंवा नाही.
    o ते कदाचित काही काळासाठी तुमचे मोजमाप करत असतील याची जाणीव ठेवा. चांगली बातमी अशी आहे की एखाद्या वेळी, जर तुम्ही संबंध प्रस्थापित करण्यात यशस्वी झाला असाल तर-ते आराम करतील आणि तुम्ही दोघेही घर शोधण्यावर किंवा विकण्यावर लक्ष केंद्रित करू शकता.
    मला संबंध विकसित करण्यास आणखी काय मदत करू शकते?
    o विविध व्यक्तिमत्त्व प्रकार समजून घेण्याचा प्रयत्न करून आणि नंतर योग्य प्रश्न बोलून आणि विचारून.
    o जर तुमचा चांगला संबंध असेल (ग्राहकाप्रमाणे समान तरंग लांबी मिळवा) तर विक्री मुळातच संपली आहे, आता फक्त योग्य घर शोधणे किंवा सूचीची कागदपत्रे भरणे ही बाब आहे.
    वेगवेगळ्या व्यक्तिमत्त्वांचे काय
    o हे मानसोपचारावरील पुस्तक नसल्यामुळे आत्ता फक्त दोन मुख्य प्रकार समजून घ्या.
    o अंतर्मुख आणि बहिर्मुख लोक आहेत.
    o तुम्हाला प्रकार माहित आहे. प्रत्येक वर्गीकरणात बसणाऱ्या तुमच्या ओळखीच्या तीन लोकांचा विचार करा.
    देहबोली आणि बोलण्याच्या पद्धतींचे काय?
    o जर ते जलद किंवा हळू बोलत असतील तर त्यांच्या बोलण्याच्या पद्धतींची नक्कल करण्याचा प्रयत्न करा.
    o जर ते मोठ्याने किंवा मऊ बोलत असतील तर तेच करा. ते पुढे किंवा मागे झुकलेले आहेत?
    o या विषयावर बरीच पुस्तके लिहिली गेली आहेत हे वेगळे सांगण्याची गरज नाही. फक्त हे लक्षात ठेवा की हा एक महत्त्वाचा घटक आहे—विशेषत: जेव्हा तुम्ही कॉन्फरन्स रूममध्ये किंवा एखाद्याच्या घरी $400,000 च्या डीलवर चर्चा करत असता.
    संबंध विकसित करणे हे एक कौशल्य आहे जे शिकले आणि सुधारले जाऊ शकते.
    o आपण सर्वांनी एक विक्रेत्याचा अनुभव घेतला आहे ज्याने आपल्याला काहीतरी विकले आणि तरीही आपल्याला असे वाटले नाही की आपण विकले जात आहोत. कारण त्याने किंवा तिने, तुम्हाला जिथं तुम्ही त्यांच्यावर विश्वास ठेवला आहे ते तुम्हाला सहज वाटले.
    आपण संबंध कसे विकसित करू?
    o तुमचे डोळे आणि कान वापरा आणि प्रश्न विचारा. समजावणे
    o डोळे वापरा:
    o त्यांचा पेहराव-त्यांची कार-त्यांची वैयक्तिक मालमत्ता पहा आणि मला असे म्हणायचे आहे की त्यांच्याकडे पहा आणि त्यांच्याबद्दल तुम्हाला काय सांगते याचा उलगडा करा.
    o कान वापरा:
    o ते काय म्हणतात ते ऐका आणि त्यांच्या वास्तविक प्रेरणाच्या तळापर्यंत जाण्यासाठी प्रश्न विचारा!
    आता या सर्व संभाषणादरम्यान, कदाचित एक किंवा दोन गोष्टी तुम्हाला आढळतील की तुमच्यात त्यांच्याशी साम्य आहे. (कुटुंब, भौगोलिक क्षेत्रे, मासेमारी इ.) जेव्हा तुम्ही सामायिक मैदानात याल, तेव्हा त्यांना कळवा की तुम्ही परिचित आहात आणि नंतर त्यांच्याशी चर्चा करण्यासाठी एक मिनिट द्या.
    ध्येय काय आहे?
    o एकदा त्यांनी तुम्हाला त्यांच्यापैकी एक म्हणून स्वीकारल्यास तुम्हाला विक्रीमध्ये खूप चांगला अनुभव मिळेल कारण तुम्ही आता एकत्र काम करत असल्यानंतर एक टीम म्हणून—तुम्ही आता सल्लागार पदावर असलेले सेल्समन नसाल .
    o लक्षात ठेवा, ग्राहक एकतर तुम्हाला त्याच्या जगात येऊ देईल किंवा देणार नाही. जर तुम्हाला हे समजले आणि त्याच्या/तिच्याशी सहानुभूती दाखवण्यासाठी खरोखर कठोर परिश्रम केले तर तुम्ही विश्वासार्ह स्थान मिळवू शकता. बऱ्याच प्रकरणांमध्ये, जेव्हा तुम्ही मार्गात असाल तेव्हा तुम्ही त्यांना आराम (शरीर भाषा) पहाल.
    o हे स्पष्ट करण्यासाठी तुम्ही कधी भाषण दिले आहे आणि लक्षात आले आहे की तुम्ही शेवटी प्रेक्षक सदस्याशी जोडले असता ते होकार देतील. या सर्व गोष्टी क्षुल्लक वाटू शकतात परंतु त्या नाहीत.
    शेवटी, जर तुम्ही ग्राहकांचा विश्वास मिळवू शकत असाल, तर उत्पादन किंवा सेवा विकणे खूप सोपे आहे आणि त्यात सहभागी असलेल्या प्रत्येकासाठी अनुभव आनंददायक असू शकतो.
    नेहमी लक्षात ठेवा की विजय/विजय ही सर्वोत्तम परिस्थिती आहे.

टॅग्ज: सी ओळी. चार ॲरे.

सी मध्ये स्ट्रिंग्स. परिचय.

सी स्ट्रिंग्सवरील हा एक परिचयात्मक लेख आहे. जेव्हा आपण मेमरी आणि पॉइंटर्ससह कसे कार्य करावे हे शिकू तेव्हा अधिक तपशीलवार वर्णन आणि उदाहरणे येतील. संगणकात, सर्व मूल्ये संख्या म्हणून संग्रहित केली जातात. आणि ओळी देखील, तेथे कोणतेही चिन्ह किंवा अक्षरे नाहीत. पद म्हणजे संख्यांचा ॲरे. प्रत्येक संख्या एका विशिष्ट वर्णाशी संबंधित असते, जी एन्कोडिंग टेबलमधून घेतली जाते. स्क्रीनवर प्रदर्शित झाल्यावर, चिन्ह एका विशिष्ट प्रकारे प्रदर्शित केले जाते.
स्ट्रिंग्स साठवण्यासाठी चार प्रकारच्या ॲरेचा वापर केला जातो. मी पुन्हा एकदा पुनरावृत्ती करतो - चार प्रकार अंकीय आहे, तो डेटाचा एक बाइट संचयित करतो. परंतु एन्कोडिंग टेबलनुसार, यापैकी प्रत्येक संख्या एका वर्णाशी संबंधित आहे. आणि उलट दिशेने - प्रत्येक वर्ण एन्कोडिंग टेबलमधील त्याच्या अनुक्रमांकाद्वारे निर्धारित केला जातो.
उदाहरणार्थ

#समाविष्ट करा #समाविष्ट करा void main() ( char c = "A"; int i = 65; printf("char %c\n म्हणून प्रदर्शित करा", c); printf("int %d\n म्हणून प्रदर्शित करा", c); printf(" वर्ण %c\n म्हणून प्रदर्शित करा, i); printf("char %d\n म्हणून प्रदर्शित करा", i); getch(); )

आम्ही दोन व्हेरिएबल्स तयार केले, एक प्रकार चार, इतर int. "A" या अक्षराचे संख्यात्मक मूल्य 65 आहे. हे अक्षर आहे, स्ट्रिंग नाही आणि त्यामुळे एकल अवतरणांनी वेढलेले आहे. आम्ही ते पत्र म्हणून छापू शकतो

Printf("कॅर %c\n", c म्हणून प्रदर्शित करा);

मग ते आउटपुट होईल

तुम्ही संख्या म्हणून आउटपुट केल्यास, ते होईल
65
तुम्ही 65 क्रमांकासह ते करू शकता, जे व्हेरिएबल सारख्या व्हेरिएबलमध्ये संग्रहित आहे int.
विशेष वर्णांची स्वतःची संख्या देखील असते

#समाविष्ट करा #समाविष्ट करा void main() ( printf("%c", "\a"); printf("%d", "\a"); printf("%c", 7); getch(); )

येथे, ध्वनी सिग्नल प्रथम "आउटपुट" असेल, नंतर त्याचे संख्यात्मक मूल्य, नंतर पुन्हा ध्वनी सिग्नल.
C मधील स्ट्रिंग हा प्रकाराचा ॲरे आहे चार, ज्याचा शेवटचा घटक टर्मिनल वर्ण "\0" संचयित करतो. या वर्णाचे अंकीय मूल्य 0 आहे, म्हणून आपण असे म्हणू शकतो की ॲरे शून्याने संपतो.
उदाहरणार्थ

#समाविष्ट करा #समाविष्ट करा void main() ( चार शब्द; शब्द = "A"; शब्द = "B"; शब्द = "C"; शब्द = "\0"; //word = 0; printf ("%s", शब्द) च्या समतुल्य getch();

%s की आउटपुटसाठी वापरली गेली. या प्रकरणात, ओळ पहिल्या टर्मिनल वर्णापर्यंत मुद्रित केली जाते, कारण printf फंक्शनला शब्द ॲरेचा आकार माहित नाही.
या उदाहरणात आपण ठेवले नाही तर

शब्द = "\0";

नंतर शून्याने भरलेला पहिला बाइट समोर येईपर्यंत अनियंत्रित लांबीच्या वर्णांची स्ट्रिंग आउटपुट होईल.

#समाविष्ट करा #समाविष्ट करा void main() ( char word = "ABC"; char text = ("H", "E", "L", "L", "O"); printf("%s\n", शब्द); printf ("%s", मजकूर);

या प्रकरणात, सर्वकाही योग्य आहे. "ABC" ही स्ट्रिंग शून्याने संपते आणि आपण त्यासोबत ॲरे हा शब्द सुरू करतो. मजकूर स्ट्रिंग अक्षरांद्वारे अक्षरे सुरू केली जाते, सर्व उर्वरित वर्ण, ॲरेवरील धड्यातील खालीलप्रमाणे, शून्याने भरलेले आहेत.

वाचन ओळी

वापरकर्त्याकडून स्ट्रिंगची विनंती करण्यासाठी, तुम्हाला बफर तयार करणे आवश्यक आहे. बफर आकार आगाऊ निवडणे आवश्यक आहे जेणेकरून प्रविष्ट केलेला शब्द त्यात बसेल. ओळी वाचताना, असा धोका असतो की वापरकर्ता बफरच्या परवानगीपेक्षा जास्त डेटा प्रविष्ट करेल. हा डेटा वाचला जाईल आणि मेमरीमध्ये ठेवला जाईल आणि इतर लोकांच्या मूल्यांवर अधिलिखित होईल. अशा प्रकारे, आपण आवश्यक बाइट्स रेकॉर्ड करून हल्ला करू शकता, ज्यामध्ये, उदाहरणार्थ, दुर्भावनायुक्त प्रोग्रामसह कोडच्या विभागात जाणे किंवा डेटा लॉग करणे फायदेशीर आहे.

#समाविष्ट करा #समाविष्ट करा void main() ( char buffer; scanf("%19s", बफर); printf("%s", बफर); getch(); )

या प्रकरणात, प्रविष्ट केलेल्या वर्णांची संख्या 19 पर्यंत मर्यादित आहे आणि बफर आकार 1 मोठा आहे, कारण टर्मिनल वर्ण संग्रहित करणे आवश्यक आहे. चला एक साधा प्रोग्राम लिहू जो वापरकर्त्याला स्ट्रिंगसाठी विचारतो आणि त्याची लांबी देतो.

#समाविष्ट करा #समाविष्ट करा void main() ( char buffer; unsigned len = 0; scanf("%127s", बफर); तर (बफर != "\0") ( len++; ) printf("लांबी(%s) == %d" , बफर, लेन);

"\0" अक्षराचे अंकीय मूल्य शून्य असल्याने, आपण लिहू शकतो

असताना (बफर != 0) ( len++; )

किंवा, अगदी लहान

असताना (बफर) ( len++;)

आता वापरकर्त्याला दोन शब्द विचारणारा आणि त्यांची तुलना करणारा प्रोग्राम लिहू

#समाविष्ट करा #समाविष्ट करा /* तुलनेचा परिणाम हा अंक 0 असेल जर शब्द 1 च्या बरोबर असतील तर जर पहिला शब्द दुसऱ्या पेक्षा मोठा असेल तर शब्दकोशातील क्रमाने -1 दुसरा शब्द मोठा असल्यास */ void main() ( char firstWord; / //प्रथम शब्द चार सेकंडवर्ड; //काउंटर इंट cmpResult = 0;< 128; i++) { if (firstWord[i] >secondWord[i]) ( // दुसरा शब्द आधीच संपला असला तरीही, कारण // नंतर तो शून्य cmpResult = 1 ने संपतो; ब्रेक; ) अन्यथा (पहिला शब्द[i])< secondWord[i]) { cmpResult = -1; break; } } printf("%d", cmpResult); getch(); }

प्रत्येक अक्षराचे संख्यात्मक मूल्य असल्याने त्यांची संख्या एकमेकांशी तुलना करता येते. याव्यतिरिक्त, एन्कोडिंग टेबलमधील अक्षरे सहसा (परंतु नेहमीच नाही!) वर्णक्रमानुसार लावली जातात. म्हणून, अंकीय मूल्यानुसार क्रमवारी लावणे देखील अक्षरानुसार क्रमवारी लावले जाईल.

प्रोग्रामर म्हणतो:

नमस्कार! मी तुमचा लेख वाचला. मी एकाच वेळी खूप दुःखी आणि मजेदार होतो. तुमचा हा वाक्प्रचार विशेषत: मारून टाकणारा आहे: "चार प्रकाराचा व्हेरिएबल अनेकदा ॲरे म्हणून वापरला जात असल्याने, संभाव्य मूल्यांची संख्या निर्धारित केली जाते." 😆 😆 😆
मी तुझ्यावर हसत नाही. वेबसाइट तयार करणे खरोखर एक पराक्रम आहे. मी तुम्हाला फक्त सल्ल्याने समर्थन देऊ इच्छितो आणि काही चुका दाखवू इच्छितो.

1. चार प्रकारातील व्हेरिएबलचे मूल्य खालीलप्रमाणे नियुक्त केले आहे:

येथे:

चार a = *"A";

ॲरेचा पॉइंटर डी-ॲड्रेस्ड आहे आणि परिणामी ॲरेच्या पहिल्या घटकाचे मूल्य परत केले जाते, म्हणजे. 'अ'

2. रीसेट करणे खालीलप्रमाणे होते:

चार अ = NULL;
char b = ();

// आणि अशा प्रकारे प्रोग्रामच्या मुख्य भागातील ओळ साफ केली जाते

"" - या चिन्हाला शून्य टर्मिनेटर म्हणतात. हे ओळीच्या शेवटी ठेवलेले आहे. तुम्ही स्वतः, नकळत, तुमच्या लेखातील s1 ॲरे या चिन्हाने भरला आहे. परंतु हे चिन्ह केवळ ॲरेच्या शून्य घटकाला नियुक्त करणे शक्य होते.

3. शब्दावली वापरण्यास मोकळ्या मनाने.
= चिन्ह एक असाइनमेंट ऑपरेशन आहे.
* चिन्ह हे डी-ॲड्रेसिंग ऑपरेशन आहे.
मला लेखाचा हा तुकडा म्हणायचे आहे: "सर्व काही इतके सोपे आहे की = चिन्हापूर्वी तुम्हाला * चिन्ह लावावे लागले आणि तुम्हाला घटक क्रमांक घोषित करावा लागला (शून्य पहिल्याशी संबंधित आहे)"

मला चुकीचे समजू नका, लेख सध्याच्या स्वरूपात अस्तित्वात नाही. आळशी होऊ नका, ते पुन्हा लिहा.
तुमच्यावर मोठी जबाबदारी आहे! मी गंभीर आहे. आपल्या साइटची पृष्ठे Yandex परिणामांच्या पहिल्या पृष्ठामध्ये समाविष्ट केली आहेत. अनेकांनी तुमच्या चुकांची पुनरावृत्ती करायला सुरुवात केली आहे.

शुभेच्छा! आपण हे करू शकता!

:
मला हे बर्याच काळापासून माहित आहे, काहीतरी दुरुस्त करण्यासाठी सतत 200 लेख पुन्हा वाचणे कठीण आहे. आणि काही असभ्य प्रकार अशा प्रकारे लिहितात की काय दुरुस्त करणे चांगले आहे हे माहित असूनही ते दुरुस्त करण्यास अजिबात तयार नसतात.

इतर चुका सुधारण्यात मला आनंद होईल. कोणतीही अयोग्यता दिसल्यास ती दुरुस्त करा. मी आपल्या मदतीची प्रशंसा. धन्यवाद, मला हे बर्याच काळापासून माहित आहे, काहीतरी दुरुस्त करण्यासाठी सतत 200 लेख पुन्हा वाचणे कठीण आहे. आणि काही असभ्य प्रकार अशा प्रकारे लिहितात की काय सुधारणे चांगले आहे हे माहित असूनही ते दुरुस्त करण्यास अजिबात तयार नसतात.
आपल्या वर्ण b = () सह; हे अजिबात शून्य होत नाही. त्यांनी निदान तपासून बघावे.
जर आपण शून्य वर्णाबद्दल बोललो तर "" ; जेव्हा मी त्यात ओळ भरली तेव्हा मला चांगले ठाऊक होते की वास्तविक शुद्धीकरण दर्शविणे हे उद्दिष्ट आहे, आणि डोळ्यांना दिसणारे काहीतरी नाही, कारण ओळीत कचरा समाविष्ट आहे, जो कधीकधी मार्गात येतो. तुम्ही स्वतः अटींबाबत अधिक सावधगिरी बाळगली पाहिजे, “नल टर्मिनेशन सिम्बॉल” किंवा फक्त “नल सिम्बॉल”, टर्मिनेटर नाही))) आणि टर्मिनेटर चिन्ह अगदी छान वाटत आहे.

मी लेखाचे आधुनिकीकरण करेन, परंतु मी दुसऱ्याच्या शैलीवर स्विच करणार नाही. जर मला वाटत असेल की एखाद्या नवशिक्याला ते जसे पाहिजे तसे समजण्यापेक्षा हे समजणे सोपे आहे, तर मी ते तसे सोडून देईन. माझाही गैरसमज करून घेऊ नका. प्रत्येक चिन्हाची व्याख्या आणि नावापेक्षा कमकुवत नवशिक्यासाठी "चिन्ह" हा शब्द समजणे आणि लक्षात ठेवणे खूप सोपे आहे. यात अजिबात चूक नाही, हे एक लक्षण आहे - एक चिन्ह आहे. एकावर कमी भर दिल्याने दुसऱ्यावर जास्त भर दिला जातो.

इतर चुका सुधारण्यात मला आनंद होईल. कोणतीही अयोग्यता दिसल्यास ती दुरुस्त करा. मी आपल्या मदतीची प्रशंसा. धन्यवाद.

हॅलो पुन्हा!
मला स्पष्ट करायचे आहे. "झिरो-टर्मिनेटर" (इंग्रजी लिमिटरमधून टर्मिनेटर) हा शब्द माझ्या विद्यापीठातील शिक्षकाने वापरला होता. वरवर पाहता ही जुनी शाळा आहे!
पंक्ती रीसेट करण्यासाठी म्हणून.
char b = (); हे खरोखर एक रीसेट आहे. संपूर्ण ॲरे शून्यांनी भरलेले आहे. तुमचा माझ्यावर विश्वास नसल्यास, ते पहा!
जर आपण एखाद्या ओळीचा त्याच्या नैसर्गिक, दैनंदिन अर्थाने विचार केला तर "रिक्त" ओळ अशी एक ओळ असेल ज्यामध्ये एकही वर्ण नाही. म्हणून, 99.9% प्रकरणांमध्ये सुरुवातीला शून्य वर्ण ठेवणे पुरेसे आहे. सामान्यतः, पहिल्या शून्य वर्णापर्यंत स्ट्रिंगवर प्रक्रिया केली जाते आणि त्यानंतर कोणते वर्ण येतात हे महत्त्वाचे नसते. मला समजले आहे की तुम्हाला लाइन रीसेट करायची होती. मी फक्त वेळ-चाचणी क्लासिक पर्याय ऑफर करण्याचा निर्णय घेतला.

:
जेव्हा "सामान्यत: स्ट्रिंग प्रक्रिया पहिल्या शून्य वर्णापर्यंत जाते आणि त्यानंतर कोणते वर्ण येतात ते महत्त्वाचे नसते" - होय, स्ट्रिंग रद्द केली जाते
जर आपण "एका पंक्तीच्या सर्व सेलचे वास्तविक शून्य (ज्याबद्दल मी लिहिले आहे)" विचार केला तर - नाही, शून्य नाही आणि अगदी पहिले वर्ण देखील शून्य नाही. मी हा पर्याय तपासला. MinGW(कोडब्लॉक) - संपूर्ण ॲरे अक्षर "a" देते
हे वादाचे कारण आहे असे मला वाटत नाही.

स्ट्रिंगसह कार्य करणे. स्ट्रिंग वर्ग. क्लास कन्स्ट्रक्टर. फंक्शन्स assign() , append() , insert() , replace() , erase() , find() , rfind() , compare() , c_str() . उदाहरणे

1. C++ प्रोग्राम्समधील स्ट्रिंग क्लासचा उद्देश काय आहे?

स्ट्रिंग क्लास चार* स्ट्रिंगसह कार्य करण्यासाठी डिझाइन केले आहे, जे शून्य-टर्मिनेटेड स्ट्रिंग आहेत. char* स्ट्रिंगसह काम करण्यासाठी पर्याय म्हणून स्ट्रिंग क्लास सादर करण्यात आला. वर्णाने संपणाऱ्या ओळी ‘\0’ सी-स्ट्रिंग देखील म्हणतात. स्ट्रिंग हा वर्ग असल्याने, तुम्ही या वर्गाच्या वस्तू घोषित करू शकता.

2. एमएस व्हिज्युअल स्टुडिओ C++ मधील स्ट्रिंग क्लासची क्षमता वापरण्यासाठी कोणते मॉड्यूल (लायब्ररी) जोडले जाणे आवश्यक आहे?

एमएस व्हिज्युअल स्टुडिओ (C++) मध्ये स्ट्रिंग क्लासची क्षमता वापरण्यासाठी, तुम्हाला लायब्ररी समाविष्ट करणे आवश्यक आहे. आणि std नेमस्पेस.

#समाविष्ट करा नेमस्पेस std वापरून;
3. टाईप स्ट्रिंगचे व्हेरिएबल कसे घोषित केले जाते? उदाहरणे

टाईप स्ट्रिंगचे व्हेरिएबल घोषित करणे नियमित व्हेरिएबल प्रमाणेच केले जाते. एकाचवेळी प्रारंभासह घोषणेचे संभाव्य प्रकार.

// प्रकार स्ट्रिंग स्ट्रिंग s1; // प्रकार स्ट्रिंगचे s1 नावाचे व्हेरिएबल string s2 = "हे एक स्ट्रिंग व्हेरिएबल आहे" ; प्रारंभासह // घोषणा असाइनमेंट ऑपरेटरसह टाइप स्ट्रिंगचे व्हेरिएबल वापरणे s1 = s2; // s1 = "हे एक स्ट्रिंग व्हेरिएबल आहे" s2 = "नवीन मजकूर" ;
4. char* प्रकाराच्या तुलनेत स्ट्रिंग क्लास वापरण्याचे फायदे आणि तोटे काय आहेत?

नवीन स्ट्रिंग प्रकाराची निर्मिती कॅरेक्टर स्ट्रिंगसह कार्य करण्याच्या कमतरतेमुळे झाली, ज्याने char* प्रकार प्रदर्शित केला. char* प्रकाराच्या तुलनेत, स्ट्रिंग प्रकाराचे खालील मुख्य फायदे आहेत:

  • मानक C++ ऑपरेटर वापरून स्ट्रिंग्सवर प्रक्रिया करण्याची क्षमता ( = , + , = = , <> वगैरे.) तुम्हाला माहिती आहेच की, char* प्रकार वापरताना, स्ट्रिंग्ससह अगदी सोप्या ऑपरेशन्स देखील क्लिष्ट दिसल्या आणि अत्याधिक प्रोग्राम कोड लिहिणे आवश्यक होते;
  • प्रोग्राम कोडची अधिक विश्वासार्हता (सुरक्षा) सुनिश्चित करणे. उदाहरणार्थ, स्ट्रिंग कॉपी करताना, स्ट्रिंग प्रकार योग्य क्रिया प्रदान करतो ज्या जर स्रोत स्ट्रिंग गंतव्य स्ट्रिंगपेक्षा मोठी असेल;
  • स्वतंत्र डेटा प्रकार म्हणून स्ट्रिंग प्रदान करणे. स्ट्रिंग प्रकार स्ट्रिंग म्हणून घोषित करणे प्रोग्राममधील सर्व व्हेरिएबल्ससाठी समान आहे, जे डेटा सुसंगतता सुनिश्चित करते.

char* प्रकाराच्या तुलनेत स्ट्रिंग प्रकाराचा मुख्य तोटा म्हणजे कमी डेटा प्रोसेसिंग गती. हे या वस्तुस्थितीमुळे आहे की स्ट्रिंग प्रकार, खरं तर, एक कंटेनर वर्ग आहे. आणि वर्गासह कार्य करण्यासाठी प्रोग्राम कोडची अतिरिक्त अंमलबजावणी आवश्यक आहे, ज्यामुळे, अतिरिक्त वेळ लागतो.

5. स्ट्रिंग क्लासच्या ऑब्जेक्ट्ससह कोणते ऑपरेटर वापरले जाऊ शकतात?

स्ट्रिंग क्लास सोयीस्कर आहे कारण ते तुम्हाला स्टँडर्ड (ओव्हरलोड केलेले) ऑपरेटर वापरून सोयीस्करपणे स्ट्रिंग्स हाताळण्याची परवानगी देते.

खालील ऑपरेटर्स स्ट्रिंग क्लासच्या ऑब्जेक्ट्ससह वापरले जाऊ शकतात

  • = - असाइनमेंट
  • + - जोडणे (स्ट्रिंग जोडणे)
  • += - जोडणीसह असाइनमेंट
  • == - समानता
  • != - असमानता
  • < - कमी
  • <= - कमी किंवा समान
  • > - अधिक
  • >= - अधिक किंवा समान
  • - अनुक्रमणिका

उदाहरण,जे वरील विधानांचा वापर दर्शविते

// स्ट्रिंग प्रकार, स्ट्रिंग्सवरील ऑपरेशन्स string s1 = "s-1" ; string s2 = "s-2" ; स्ट्रिंग s3; bool b; // ऑपरेशन "=" (स्ट्रिंग असाइनमेंट) s3 = s1; // s3 = "s-1" // ऑपरेशन "+" - स्ट्रिंग एकत्रीकरण s3 = s3 + s2; // s3 = "s-1s-2" // ऑपरेशन "+=" - जोडणीसह असाइनमेंट s3 = "s-3" ; s3 += "abc" ; // s3 = "s-3abc" // ऑपरेशन "==" - स्ट्रिंग तुलना b = s2==s1; // b = असत्य b = s2=="s-2" ; // b = खरे // ऑपरेशन "!=" - स्ट्रिंग तुलना (समान नाही) s1 = "s1" ; s2 = "s2" ; b = s1 != s2; // b = खरे // ऑपरेशन्स "<" и ">"- स्ट्रिंग तुलना s1 = "abcd" ; s2 = "de"; b = s1 > s2; // b = असत्य b = s1< s2; // b = true // ऑपरेशन्स "<=" и ">=" - स्ट्रिंग तुलना (पेक्षा कमी किंवा समान, पेक्षा जास्त किंवा समान) s1 = "abcd" ; s2 = "ab" ; b = s1 >= s2; // b = खरे b = s1<= s2; // b = false b = s2 >= "ab" ; // b = खरे // ऑपरेशन - अनुक्रमणिका char c; s1 = "abcd" ; c = s1; // c = "c" c = s1; // c = "a"
6. स्ट्रिंग क्लासमध्ये कन्स्ट्रक्टर असतात का?

कोणत्याही वर्गाप्रमाणे, स्ट्रिंग क्लासमध्ये अनेक कंस्ट्रक्टर असतात. मुख्य खालील आहेत:

स्ट्रिंग(); स्ट्रिंग (const char * str); string(const string & str);

7. कन्स्ट्रक्टर वापरून आरंभीची उदाहरणे

खाली स्ट्रिंग प्रकार व्हेरिएबल्स आरंभ करण्याची उदाहरणे आहेत

स्ट्रिंग s1("हॅलो!"); string s2 = "हॅलो!" ; // आरंभीकरण - कन्स्ट्रक्टर स्ट्रिंग (const char * str) char * ps = "हॅलो" ; स्ट्रिंग s3(ps); // आरंभिकरण स्ट्रिंग s4(s3); // आरंभीकरण - कन्स्ट्रक्टर स्ट्रिंग (const string & str)स्ट्रिंग s5; // आरंभीकरण - स्ट्रिंग() कन्स्ट्रक्टर

8. स्ट्रिंग नियुक्त करणे. assign() फंक्शन. उदाहरणे

एक स्ट्रिंग दुसऱ्याला नियुक्त करण्यासाठी, तुम्ही दोन पद्धतींपैकी एक वापरू शकता:

  • असाइनमेंट ऑपरेटर वापरा ‘=’ ;
  • स्ट्रिंग क्लासमधून assign() फंक्शन वापरा.

assign() फंक्शनमध्ये अनेक ओव्हरलोड केलेली अंमलबजावणी आहेत.

पहिला पर्याय म्हणजे पॅरामीटर्सशिवाय फंक्शन कॉल करणे

स्ट्रिंग &असाइन (रिकामा);

या प्रकरणात, एका स्ट्रिंगची दुसऱ्यासाठी सोपी असाइनमेंट आहे.

दुसरा पर्याय तुम्हाला स्ट्रिंगमधून निर्दिष्ट वर्णांची संख्या कॉपी करण्याची परवानगी देतो:

स्ट्रिंग &असाइन (const string & s, size_type st, size_type num);

  • s - ज्या ऑब्जेक्टमधून स्त्रोत स्ट्रिंग घेतली जाते;
  • st – अनुक्रमणिका (स्थिती) त्या ओळीत ज्यापासून संख्या वर्णांची कॉपी करणे सुरू होते;
  • संख्या - स्थान st वरून कॉपी करायच्या वर्णांची संख्या;
  • आकार_प्रकार - क्रमिक डेटा प्रकार.

assign() फंक्शनचा तिसरा व्हेरिएंट कॉलरला स्ट्रिंग s च्या पहिल्या क्रमांकाच्या वर्णांची कॉपी करतो:

स्ट्रिंग आणि असाइन करा (const char *s, size_type num);

  • s – वर्णाने समाप्त होणारी स्ट्रिंग ‘\0’ ;
  • num म्हणजे कॉलिंग ऑब्जेक्टवर कॉपी केलेल्या वर्णांची संख्या. स्ट्रिंग s मधील प्रथम संख्या वर्ण कॉपी केले आहेत.

खाली assign() फंक्शनच्या विविध अंमलबजावणीचे उदाहरण आहे.

उदाहरण.

// स्ट्रिंग्सचे असाइनमेंट, असाइन() फंक्शन string s1 = "साइट" ; स्ट्रिंग s2; स्ट्रिंग s3; char * ps = "साइट" ; s3 = s1; // s3 = "साइट" s2.assign(s1); // s2 = "साइट" s2.assign(s1, 0, 4); // s2 = "सर्वोत्तम" s2.assign(ps, 8); // s2 = "bestprog"
9. तार एकत्र करणे. append() फंक्शन. उदाहरण

append() फंक्शन स्ट्रिंग्स जोडण्यासाठी वापरले जाते. आपण पंक्ती जोडण्यासाठी ऑपरेशन देखील वापरू शकता ‘+’ , उदाहरणार्थ:

स्ट्रिंग s1; स्ट्रिंग s2; s1 = "abc" ; s2 = "def" ; s1 = s1 + s2; // s1 = "abcdef"

तथापि, जर तुम्हाला स्ट्रिंगचा काही भाग जोडायचा असेल तर append() फंक्शन चांगले आहे.

फंक्शनमध्ये खालील अंमलबजावणी पर्याय आहेत:

स्ट्रिंग आणि जोड (const string & s, size_type start); string &append(const char *s, size_type num);

पहिल्या अंमलबजावणीमध्ये, फंक्शनला स्ट्रिंग ऑब्जेक्टचा संदर्भ प्राप्त होतो s, जो कॉलिंग ऑब्जेक्टमध्ये जोडला जातो. दुसऱ्या अंमलबजावणीमध्ये, फंक्शनला const char * प्रकाराच्या स्ट्रिंगसाठी पॉइंटर प्राप्त होतो, जो '\0' वर्णाने समाप्त होतो.

उदाहरण. append() फंक्शनचे प्रात्यक्षिक.

स्ट्रिंग s1 = "abcdef" ; s2 = "1234567890" ; संलग्न करा(s2, 3, 4); // s1 = "abcdef4567" char * ps = "1234567890" ; s1 = "abcdef" ; s1.append(ps, 3); // s1 = "abcdef123"

10. स्ट्रिंगमध्ये वर्ण घालणे. insert() फंक्शन. उदाहरण

दुसऱ्या ओळीच्या दिलेल्या स्थानावर एक ओळ घालण्यासाठी, तुम्हाला insert() फंक्शन वापरावे लागेल, ज्यामध्ये अनेक अंमलबजावणी पर्याय आहेत.

फंक्शनची पहिली आवृत्ती तुम्हाला कॉलिंग लाइन (कॉलिंग ऑब्जेक्ट) च्या निर्दिष्ट प्रारंभ स्थानावर संपूर्ण स्ट्रिंग घालण्याची परवानगी देते:

स्ट्रिंग आणि घाला(size_type start, const string &s);

फंक्शनची दुसरी आवृत्ती तुम्हाला कॉलिंग स्ट्रिंगच्या निर्दिष्ट स्टार्ट पोझिशनमध्ये स्ट्रिंगचा एक भाग (पॅरामीटर्स insStart , num ) घालण्याची परवानगी देते:

स्ट्रिंग आणि घाला (आकार_प्रकार प्रारंभ, कॉन्स्ट स्ट्रिंग आणि, आकार_प्रकार इनस्टार्ट, आकार_प्रकार क्रमांक);

वरील फंक्शन्समध्ये:

  • s – कॉलिंग लाइनमध्ये घातलेली स्ट्रिंग;
  • start – कॉलिंग लाईनमधील स्थिती जिथून स्ट्रिंग s घातली आहे;
  • insStart – स्ट्रिंग s मधील स्थान ज्यामधून समाविष्ट केले जाते;
  • num – स्ट्रिंग s मधील वर्णांची संख्या जी insStart स्थितीतून समाविष्ट केली जाते.
string s1 = "abcdef" ; स्ट्रिंग s2 = "1234567890" ; s1.insert(3, s2); // s1 = "abc"+"1234567890"+"def"="abc1234567890def" s2.insert(2, s1, 1, 3); // s2 = "12bcd34567890"
11. स्ट्रिंगमधील वर्ण बदलणे. बदला() फंक्शन. उदाहरण

रिप्लेस() फंक्शन कॉलिंग स्ट्रिंगमधील वर्ण बदलते. फंक्शनमध्ये खालील अंमलबजावणी पर्याय आहेत:

स्ट्रिंग &रिप्लेस (size_type start, size_type num, const string &s); string &replace(size_type start, size_type num, const string &s, size_type replStart, size_type replNum);

पहिल्या अंमलबजावणीमध्ये, कॉलिंग स्ट्रिंग स्ट्रिंग s ने बदलली जाते. कॉलिंग लाइनमधील स्थान (प्रारंभ) आणि वर्णांची संख्या (संख्या) निर्दिष्ट करणे शक्य आहे जे स्ट्रिंग s सह बदलणे आवश्यक आहे.

रिप्लेस() फंक्शनची दुसरी आवृत्ती पहिल्यापेक्षा वेगळी आहे कारण ती कॉलिंग स्ट्रिंगद्वारे स्ट्रिंगचा फक्त काही भाग बदलण्याची परवानगी देते. या प्रकरणात, दोन अतिरिक्त पॅरामीटर्स दिले आहेत: replStart ची स्थिती आणि स्ट्रिंग s मधील वर्णांची संख्या, जे कॉलिंग स्ट्रिंगच्या जागी सबस्ट्रिंग बनवते.

उदाहरण.रिप्लेस() फंक्शनचे प्रात्यक्षिक.

स्ट्रिंग s1 = "abcdef" ; स्ट्रिंग s2 = "1234567890" ; s2.replace(2, 4, s1); // s2 = "12abcdef7890" s2 = "1234567890" ; s2.replace(3, 2, s1); // s2 = "123abcdef67890" s2 = "1234567890" ; s2.replace(5, 1, s1); // s2 = "12345abcdef7890" // वर्ण बदलणे, बदलणे() फंक्शन string s1 = "abcdef" ; स्ट्रिंग s2 = "1234567890" ; s2.replace(2, 4, s1); // s2 = "12abcdef7890" s2 = "1234567890" ; s2.replace(3, 2, s1); // s2 = "123abcdef67890" s2 = "1234567890" ; s2.replace(5, 1, s1); // s2 = "12345abcdef7890" s2 = "1234567890" ; s2.replace(5, 1, s1, 2, 3); // s2 = "12345cde7890" s2 = "1234567890" ; s2.replace(4, 2, s1, 0, 4); // s2 = "1234abcd7890"

12. स्ट्रिंगमधून निर्दिष्ट वर्णांची संख्या काढून टाकणे. मिटवा() फंक्शन. उदाहरण

कॉलिंग स्ट्रिंगमधून वर्ण काढून टाकण्यासाठी, erase() फंक्शन वापरा:

स्ट्रिंग आणि मिटवा(size_type index=0, size_type num = npos);

  • अनुक्रमणिका - निर्देशांक (स्थिती) ज्यापासून तुम्हाला कॉलिंग लाइनमधील वर्ण काढायचे आहेत;
  • संख्या - काढलेल्या वर्णांची संख्या.

उदाहरण.

स्ट्रिंग s = "01234567890" ; s.erase(3, 5); // s = "012890" s = "01234567890" ; s.erase(); // s = ""

13. स्ट्रिंगमधील वर्ण शोधा. Find() आणि rfind() फंक्शन्स. उदाहरणे

स्ट्रिंग क्लासमध्ये, सबस्ट्रिंगमध्ये स्ट्रिंग शोधणे दोन प्रकारे केले जाऊ शकते, जे शोधाच्या दिशेने भिन्न आहेत:

  • Find() फंक्शन वापरून सुरुवातीपासून शेवटपर्यंत स्ट्रिंग स्कॅन करून;
  • rfind() फंक्शनसह स्ट्रिंग शेवटपासून सुरुवातीपर्यंत स्कॅन करून.

find() फंक्शन प्रोटोटाइप असे दिसते:

Size_type find(const string &s, size_type start = 0) const ;

  • s ही सबस्ट्रिंग आहे जी या फंक्शनला कॉल करणाऱ्या स्ट्रिंगमध्ये शोधली जाते. फंक्शन स्ट्रिंगची पहिली घटना शोधते. हे फंक्शन म्हटल्या जाणाऱ्या स्ट्रिंगमध्ये सबस्ट्रिंग s आढळल्यास, पहिल्या घटनेची स्थिती दिली जाते. अन्यथा -1 परत केला जातो;

rfind() फंक्शन प्रोटोटाइप असे दिसते:

Size_type rfind(const string &s, size_type start = npos) const ;

  • s ही सबस्ट्रिंग आहे जी कॉलिंग स्ट्रिंगमध्ये शोधली जाते. स्ट्रिंगमध्ये सबस्ट्रिंग शोधणे शेवटपासून सुरुवातीपर्यंत चालते. कॉलिंग स्ट्रिंगमध्ये सबस्ट्रिंग s आढळल्यास, फंक्शन पहिल्या घटनेची स्थिती परत करते. अन्यथा, फंक्शन -1 परत करेल;
  • npos - कॉलिंग लाइनच्या शेवटच्या वर्णाची स्थिती;
  • प्रारंभ - ज्या स्थानावरून शोध घेतला जातो.

उदाहरण १.फाइंड() फंक्शनचा परिणाम दाखवणारा कोड फ्रॅगमेंट

// टाईप स्ट्रिंग, फंक्शन फाइंड() string s1 = "01234567890" ; string s2 = "345" ; string s3 = "abcd" ; int pos; pos = s1.find(s2); // pos = 3 pos = s1.find(s2, 1); // pos = 3 pos = s1.find("jklmn" , 0); // pos = -1 pos = s1.find(s3); // pos = -1 pos = s2.find(s1); // pos = -1

उदाहरण २. rfind() फंक्शनचे प्रात्यक्षिक.

// स्ट्रिंग प्रकार, find() आणि rfind() फंक्शन्स string s1 = "01234567890" ; string s2 = "345" ; string s3 = "abcd" ; string s4 = "abcd---abcd" ; int pos; pos = s1.rfind(s2); // pos = 3 pos = s1.rfind(s2, 12); // pos = 3 pos = s1.rfind(s2, 3); // pos = 3 pos = s1.rfind(s2, 2); // pos = -1 pos = s2.rfind(s1); // pos = -1 pos = s1.rfind(s3, 0); // pos = -1 // find() आणि rfind() फंक्शन्समधील फरक pos = s4.rfind(s3); // pos = 7 pos = s4.find(s3); // pos = 0
14. तारांच्या भागांची तुलना. compare() फंक्शन. उदाहरण

स्ट्रिंग प्रकार हा वर्ग असल्याने, तुम्ही दोन स्ट्रिंगची एकमेकांशी तुलना करण्यासाठी ऑपरेशन वापरू शकता ‘= =’ . जर दोन तार समान असतील, तर तुलनेचा परिणाम खरा असेल. अन्यथा, तुलनेचा निकाल चुकीचा असेल.

पण जर तुम्हाला एका स्ट्रिंगचा भाग दुसऱ्या स्ट्रिंगशी तुलना करायची असेल, तर compare() फंक्शन यासाठी दिले जाते.

compare() फंक्शन प्रोटोटाइप:

int compare(size_type start, size_type num, const string &s) const ;
  • s – कॉलिंग स्ट्रिंगशी तुलना केलेली स्ट्रिंग;
  • स्ट्रिंग s मध्ये start – पोझिशन (इंडेक्स) जिथून तुलना करण्यासाठी स्ट्रिंग कॅरेक्टर पाहण्यास सुरुवात होते;
  • num म्हणजे स्ट्रिंग s मधील वर्णांची संख्या ज्याची तुलना कॉलिंग स्ट्रिंगशी केली जाते.

फंक्शन खालीलप्रमाणे कार्य करते. कॉलिंग स्ट्रिंग स्ट्रिंग s पेक्षा कमी असल्यास, फंक्शन -1 (ऋण मूल्य) मिळवते. कॉलिंग स्ट्रिंग स्ट्रिंग s पेक्षा मोठी असल्यास, फंक्शन 1 (एक सकारात्मक मूल्य) मिळवते. दोन स्ट्रिंग्स समान असल्यास, फंक्शन 0 मिळवते.

उदाहरण. compare() फंक्शनचे प्रात्यक्षिक:

// स्ट्रिंग प्रकार, तुलना() फंक्शन string s1 = "012345" ; string s2 = "0123456789" ; int res; res = s1.compare(s2); // res = -1 res = s1.compare("33333" ); // res = -1 res = s1.compare("012345" ); // res = 0 res = s1.compare("345" ); // res = -1 res = s1.compare(0, 5, s2); // res = -1 res = s2.compare(0, 5, s1); // res = -1 res = s1.compare(0, 5, "012345" ); // res = -1 res = s2.compare(s1); // res = 1 res = s2.compare("456" ); // res = -1 res = s2.compare("000000" ); // res = 1
15. ओळीच्या शेवटी '\0' (char * ) वर्ण असलेली स्ट्रिंग प्राप्त करणे. फंक्शन c_str() . उदाहरण

अक्षराने समाप्त होणारी स्ट्रिंग मिळवण्यासाठी ‘\0’ c_str() फंक्शन वापरले जाते.

फंक्शन प्रोटोटाइप:

const char * c_str() const ;

फंक्शन कॉन्स्ट मॉडिफायरसह घोषित केले जाते. याचा अर्थ फंक्शन कॉलिंग ऑब्जेक्ट (स्ट्रिंग) मध्ये बदल करू शकत नाही.

उदाहरण १. स्ट्रिंग प्रकार const char* मध्ये रूपांतरित करत आहे.

// प्रकार स्ट्रिंग, फंक्शन c_str()स्ट्रिंग s = "abcdef" ; const char * ps; ps = s.c_str(); // ps = "abcdef"

उदाहरण २.

खाली स्ट्रिंगला स्ट्रिंगमधून सिस्टीममध्ये रूपांतरित करण्याचे प्रात्यक्षिक आहे::स्ट्रिंग प्रकार लेबल कंट्रोलमध्ये प्रदर्शित करण्यासाठी



आम्ही वाचण्याची शिफारस करतो

वर