C ++ мөрүүд


StringҮзэлт 807

Системийн дизайны ярилцлагын асуултууд маш нээлттэй байж болох тул зөв бэлтгэх арга замыг мэдэхэд хэтэрхий хэцүү байдаг. Одоо би худалдаж авсны дараа Amazon, Microsoft, Adobe-ийн дизайныг эвдэх боломжтой болсон энэ ном. Өдөр бүр нэг засвар хийх дизайны асуулт Мөн би та дизайны дугуйг эвдэж чадна гэж амлаж байна.

C ++ нь манай програмд ​​мөр үүсгэх, ашиглах гурван үндсэн аргыг агуулдаг.

  1. Массив char элементүүдийг ашиглах
  2. ашиглах string анги
  3. ашиглах wchar_t өргөн дүрүүдийн хувьд

Тэмдэгтийн массив

String бол тэмдэгтүүдийн дараалал юм. char өгөгдлийн төрлийг C ++ хэл дээр нэг тэмдэгтийг төлөөлөхөд ашигладаг. Хэрэв та програмдаа мөр ашиглахыг хүсвэл олон тооны тэмдэгтүүдийг ашиглаж болно. Чиглэлийн массивыг ашиглан мөрийг зарлах, тодорхойлох нь бусад өгөгдлийн төрлүүдийн массивыг зарлах, тодорхойлохтой төстэй байна.

//define an array of chars with 10 elements
char msg[10] = { 'M', 'E', 'S', 'S', 'A', 'G', 'E', '\0' };

Аливаа мөр нь төгсгөлийн тэг тэмдэгтээр төгсдөг '\ 0'. Массивын тодорхойлолтыг '\ 0' гэсэн хоосон тэмдэгтийг сүүлчийн элемент болгон оруулах ёстой. Дээрх тохиолдолд массивын багтаамж 10 байх боловч бид зөвхөн 8-ийг нь л ашигласан болно. Массивын үлдсэн хоёр тэмдэгтийг тодорхойлохгүй.

Доор үзүүлсэн шиг динамик урттай тэмдэгтүүдийг зарлах, тодорхойлох өөр нэг арга:

char msg2[] = { 'M', 'E', 'S', 'S', 'A', 'G', 'E', '\0' };

Дээрх тохиолдолд хуваарилагдсан санах ойн хэмжээ нь тэмдэгтүүдийн дарааллыг хадгалахад шаардагдахтай яг ижил байх болно.

Тэмдэгтийн массивыг эхлүүлэх хамгийн энгийн арга бол доор дурдсанчлан мөрийн үсгийг давхар хашилт болгон ашиглах явдал юм.

char msg3[] = "Message";

Функцийг ашиглан char массив дээр зарим үндсэн үйлдлүүдийг хийж болно ctring зэрэг номын сан:

Нэг мөрийг нөгөөд хуулах

strcpy_s(destination, source)

Доорх ашиглах demo байна strcpy_s
char msg[10] = { 'M', 'E', 'S', 'S', 'A', 'G', 'E', '\0' };
char dest[20];
strcpy_s(dest, msg);
cout << "String copied from msg = " << dest << endl;

Дээрх жишээний үр дүнг доор харуулав

Мөрийг msg = MESSAGE-с хуулсан

Нэг мөрийг нөгөө мөрөнд холбоно уу

strcat_s(string1, string2)

string2-ийг string1-ийн төгсгөлд хавсаргана
//declare 2 messages
char string1[20] = "Good";
char string2[] = " Morning";
//concatenate strings
strcat_s(string1, string2);
cout << string1 << endl;

Дээрх програмын гаралтын os нь дараахь байдалтай байна.

Өглөөний мэнд

Тайлбар: String1-тэй нэгтгэхийн тулд танд string2-т хангалттай зай байх ёстой.

Мөрний уртыг авна уу

strlen(string)

cout << "Length of the string 2 is " << strlen(string2) << endl;

Дээрх кодын үр дүн гарна

2-р мөрний урт 8 байна

Мөр: “Өглөө” нь 7 тэмдэгт болон 8 тэмдэгтэд хадгалагданаth тэмдэгт нь хоосон тэмдэгт - '\ 0'

Хоёр мөрийг харьцуул

strcmp(string1, string2)

Энэ функц буцаж ирнэ 0, мөрүүд тэнцүү бол; сөрөг string1 бол утга бага string2 ба эерэг мөр1 бол утга илүү их string2-ээс илүү.
//declare two strings
char str1[100];
char str2[100];
//get user input of strings:
cout << "Please enter the first string\n";
cin >> str1;
cout << "Please enter the second string\n";
cin >> str2;
//compare strings
int result = strcmp(str1, str2);
if (result == 0)
{
	//strings are equals
	cout << str1 << " is equal to " << str2 << endl;
}
else
{
	if (result > 0)//str1 is greater
		cout << str1 << " is greater than " << str2 << endl;
	else//str2 is greater
		cout << str1 << " is less than " << str2 << endl;
}

Дээрх програмын үр дүнг доор харуулав


Эхний мөрийг оруулна уу
abc
Хоёр дахь мөрийг оруулна уу
abd
abc нь abd-ээс бага

strcmp мөрүүдийг толь бичиг зүйн (цагаан толгойн) дарааллаар харьцуулдаг. Мөрнүүдийн хувьд "доогуур" гэдэг нь "муур" нь "нохой" -ноос өмнө цагаан толгойн үсгээр ирдэг тул "муур" нь "нохойноос" бага гэсэн үг юм.

Чавхдаст анги

Стандарт C ++ номын сангаас өгсөн класс ашиглан мөрүүдийг дүрслэх өөр нэг арга. Энэ анги нэртэй болсон string энэ нь C ++ хэл дээрх char массиваас хамаагүй илүү ажиллагаатай байдаг. Хөтөлбөртөө "string" анги ашиглах нь танд илүү их боломжийг санал болгодог. Програмынхаа мөрүүдийг ашиглахын тулд дараахь зүйлийг оруулах хэрэгтэй.

#include <string>

Энэ толгой файлыг оруулсны дараа та мөрийн объектуудыг програмдаа ашиглах боломжтой болно. Мөрийг зарлах, тодорхойлох жишээ энд байна.
string s1 = "Have a";
string s2 = " nice day";

Хамтран ажиллах мөр анги маш амархан.

Залгагдсан мөрүүд

Мөрүүдийг нэгтгэхийн тулд нэмэх тэмдгийг ашиглана уу.

string s3 = s1 + s2;
cout << s3 << endl;

Дээрх кодын гаралтыг доор харуулав

Өдрийг сайхан өнгөрүүлээрэй

Мөрний урт

Мөрний уртыг авахын тулд, жишээ нь “s3”, та дараах функцийг ашиглаж болно

s3.length()

Мөрний урт авах жишээ
cout << "Length of s3 is " << s3.length() << endl;

Дээрх кодын гаралтыг доор харуулав

S3-ийн урт нь 15

Нэг мөрийг нөгөө мөрөнд хуулах

Нэг мөрийг нөгөөд хуулахын тулд даалгаврын операторыг ашиглана уу

string s4 = s2;
cout << s4 << endl;

Доорх кодыг дээрх гаралтын os байна

Сайхан өдөр

Мөрийг тогтмол тэмдэгтийн массив болгон хөрвүүлэх

Заримдаа string объектыг тогтмол char массив болгон хөрвүүлэх нь ашигтай байдаг. Үүнийг ашиглан хийж болно c_str() доор үзүүлсэн шиг функц

const char* cstr = s3.c_str();

String хоосон байгаа эсэхийг шалгана уу

Та ашиглаж болно empty() тэмдэгт мөр хоосон эсэхийг тодорхойлох функц. Хэрэв мөр хоосон бол функц хоосон () буцах болно true өөрөөр хэлбэл false

Хэрхэн ашиглахыг харуулсан кодыг дор харуулав empty()

if (s4.empty())
	cout << "s4 is empty" << endl;
else
	cout << s4 << endl;

String анги нь программистад мөрүүдийг удирдах олон боломжуудыг өгдөг боловч одоо зөвхөн үндсэн зүйлсийн талаар ярилцаж байна. Дараагийн сэдвүүдэд мөрний ангийн талаар илүү дэлгэрэнгүй авч үзэх болно.

Өргөн characher wchar_t

Өргөн тэмдэгт wchar_t нь энгийн тэмдэгтийн өгөгдлийн төрлөөс том хэмжээтэй өгөгдлийн төрөл юм. Энэ өгөгдлийн хэлбэр нь “2 эсвэл 4” байтыг эзэлдэг. Энэ төрөл нь тэмдэгт мөрүүдийг илэрхийлэхийн тулд өргөтгөсөн тэмдэгтүүдийг ашиглах боломжийг олгодог. Ихэнхдээ wchar_t мэдээллийн төрлийг Хятад, Япон гэх мэт олон улсын хэлийг ашиглахад ашигладаг. C ++ нь төлөөлөх зорилгоор өгөгдлийн төрлийг агуулдаг wchar_t өргөн тэмдэгтүүд.

Тэмдэгтийн өргөн хувьсагчийн тунхаглалыг дараахь байдлаар хийж болно.

wchar_t wideString;

Массив өргөн тэмдэгтүүдийг ашиглахын тулд wchar_t массивыг доор харуулсны дагуу зарлах хэрэгтэй.
wchar_t wideString[100];

Хамтран ажиллах wchar_t оруулах хэрэгтэй wchar Доор үзүүлсэн шиг таны програм дахь номын сан:
#include <wchar.h>

Wchar номын сан нь өргөн тэмдэгтүүдтэй ажиллахын тулд өөр өөр функц, тогтмолыг санал болгодог. Хэд хэдэн тогтмол байдаг wchar номын сан:

  • NULL - Заагчийн тогтмол утгыг илэрхийлнэ.
  • WCHAR_MAX - whcar_t-ийн хамгийн их утгыг илэрхийлнэ
  • WCHAR_MIN - wchar_t-ийн хамгийн бага утгыг илэрхийлнэ.
  • WEOF - Файлын төгсгөлийг заахад тогтмол ашигладаг.

Өргөн тэмдэгт мөрөнд утга өгөхийн тулд ашиглах ёстой swprintfүйл ажиллагаа:

int swprintf (wchar_t*  destinationString, size_t length, const wchar_t* formatString, ...);

Энд параметрүүд нь:

  • Destination String - форматлагдсан өгөгдлийг хадгалах өргөн тэмдэгтүүд. Энэ нь wchar_t массив эсвэл нэг өргөн тэмдэгт байж болно.
  • Урт - Бичсэн тэмдэгтийн тоо. Мөрний төгсгөлд байгаа тэмдэгт тэмдэгт мөрийн уртыг нэгээр нэмэгдүүлэхийг санаж байх хэрэгтэй.
  • Format String - Өгөгдлийг форматын дагуу бичихэд ашигладаг мөр.
  • … - Формат мөртэй хамт ашиглах параметрүүд.

Амжилтанд энэ функцын буцах утга нь бичсэн тэмдэгтийн тоо юм.

Доорх жишээ юм

swprintf(wideString, 6, L"HELLO");

Дээрх тохиолдолд форматын мөр нь энгийн мөр бөгөөд мөрийг а болгон хөрвүүлэхэд "HELLO" -гийн өмнөх "L" тэмдэгт ашиглагдана. const wchar_t*

Дараагийн жишээнд форматын мөрийг формат тодорхойлогчтой хэрхэн ашиглахыг харуулав.

swprintf(myMessage, 13, L"My age is %d ", 20);

Дээрх тохиолдолд myMessage хувьсагч нь “агуулнаМиний нас 20 настай".

Зарим формат тодорхойлогчдын жагсаалтыг дараах хүснэгтэд үзүүлэв.

 Тодорхойлогч Санал авах
 г, би Аравтын бутархай эсвэл бүхэл тоо. Аргумент нь бүхэл тоон утга юм
 U Тэмдэглэгдээгүй бүхэл тоо
 O Наймдугаар бүхэл тоо
 x, X XNUMX-тын бүхэл тоо
 F Хөвөгч цэгийн утга
 E Шинжлэх ухааны хөвөгч цэг
 c тэмдэгтийн
 s String
 n Int руу заагч

Өргөн тэмдэгтүүдийг хэвлэхийн тулд бид ашиглах ёстой wpritnf үйл ажиллагаа:

int wprintf (const wchar_t* formatString, ...);

wprintf тодорхойлсон форматтай стандарт гаралтад өргөн тэмдэгтүүдийг бичдэг. Жишээлбэл, бид дээрх кодонд ашигласан хоёр өргөн тэмдэгт мөрийн утгыг доорх байдлаар хэвлэж болно
wprintf(wideString);
wprintf(myMessage);

Стандарт гаралтад өргөн тэмдэгт бичихийн тулд та ашиглаж болно wcout ашигласантай ижил аргаар объект cout өгөгдөл гаргах.
wcout << "Use of wcout " << wideString << endl;

Консолоос өргөн тэмдэгт уншихын тулд ашиглах хэрэгтэй wcin оронд нь cin
wchar_t name[50];
cout << "Enter your name" << endl;
wcin >> name;
cout << endl << "Your name is ";
wprintf(L"%s", name);

 

Crack системийн дизайны ярилцлага
Translate »