Տողերը (strings) որպես փոփոխական

Մենք արդեն շատ անգամ ենք առնչվել տողերի հետ երբ տպում էինք դրանք cout-ի միջոցով։ cout << "Hi, I am starting to learn competitive programming!" հրամանը տող (string) օգտագործելու լավ օրինակ է։ Չակերտների մեջ գտնվող Hi, I am starting to learn competitive programming! հատվածը string է։

Բայց string-երը կարելի է օգտագործել ոչ միայն cout-ի մեջ, այլ նաև որպես փոփոխականներ։ Եթե int x = 10-ը հայտարարում է x անունով փոփոխական, որին վերագրում է 10 արժեքը, ապա string s = "hello"-ն հայտարարում է s անունով փոփոխական, որին վերագրում է hello արժեքը։ Ուշադրություն դարձրեք, որ s-ի տիպը string է։ Դա C++-ին հուշում է, որ s-ն իր մեջ պարունակում է տեքստային ինֆորմացիա։

Մինչ այս մենք միշտ օգտագործել ենք թվային փոփոխականներ։ Օրինակ int կամ long long կամ double տիպի փոփոխականները բոլորը թվային են։ Այժմ string-ի միջոցով մենք կարող ենք օգտագործել նաև տեքստային տվյալներ։

#include <iostream>
#include <string>
using namespace std;

int main() {
	string name;
	cout << "Please enter your name:";
	cin >> name;
	cout << "Your name is registered as " << name << endl;
	return 0;
}

Ուշադրություն դարձրեք #include <string>տողին։ Դա անհրաժեշտ է, որպեսզի մեր ծրագիրը հասկանա, որ մենք աշխատում ենք string փոփոխականների հետ։

Այս ծրագիրը սկզբում տպում է Please enter your name: խնդրելով օգտագերին ներմուծել իր անունը։ Դրանից հետո cin >> name; տողի միջոցով ծրագիրը ստանում է name փոփոխականի արժեքը օգտագիրոջ կողմից (այն օրինակ կարող էր մուտքագրվել որպես Arthur)։ Եվ վերջում ծրագիրը տպում է Your name is registered as և ներմուծված անունը։

Այսպիսով մենք string-ի միջոցով աշխատել տեքստային տվյալների հետ ինչպես աշխատում ենք թվայինների հետ։

Վարժություն՝

Մուտքում երկու առանձին տողերի վրա տրված են 2 տողեր (string-եր)։ Անհրաժեշտ է ելքում տպել այդ երկու տողերը բացատով (space) առանձնացված։

Մուտք

Ելք

Hi,I'm_line_1
and_I_am_line_2

Hi,I'm_line_1 and_I_am_line_2

Կարող եք ասել թե կլինի եթե մուտքային տվյալների առաջին և երկրորդ տողերում տրված լինեն բացատով առանձնացված տողեր? Օրինակ այսպես՝

Hi I am line 1
and I am line 2

Constraints

Time limit: 0.2 seconds

Memory limit: 512 MB

Output limit: 1 MB

To check your solution you need to sign in
Sign in to continue