Տողերը (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 | 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