string یا رشته
تا کنون یاد گرفته ایم که با آرایه ها کار کنیم. اگر بخواهیم آرایه ای از کاراکترها بسازیم و مثلا عبارت hello را در این آرایه بریزیم باید تک تک حروف را یکی یکی و با فاصله در آرایه بریزیم. منطقی به نظر نمی رسد که تنها راه دریافت عبارتی مثل hello دادن تک تک کاراکترها با فاصله باشد.
برای این که عبارتی از کاراکترها را به صورت یکباره از ورودی بگیریم می توانیم از نوع دیگری استفاده کنیم که به رشته یا string معروف است.
برای تعریف String باید از یکی از دو فرمت زیر استفاده کنیم.
string name; or string name(10,'a');
در تعریف نوع اول طول string محدودیتی ندارد. اما در نوع دوم طول string یا رشته را مشخصا 10 خانه تعریف کرده ایم و مقدار پیشفرض تمام خانه ها را کاراکتر A قرار داده ایم.
در حالت دوم باز هم طول رشته می تواند بیشتر از 10 خانه بشود.
برای پر کردن یک رشته می توانیم از فرمت زیر استفاده کنیم:
string a; cin>>a;
برای نمایش یک رشته می توانیم از فرمت زیر استفاده کنیم:
string a; cout<<a;
int n=a.length();
#include<string> using namespace std;
برای آشنایی با رشته ها در ابتدا سعی می کنیم ابتدا با آنها مثل آرایه رفتار کنیم. یعنی برای پر کردن و یا نمایش آنها از حلقه استفاده کنیم.
مثال 1- برنامه ای بنویسید که یک رشته را از ورودی گرفته و آن را پس از دریافت کامل نمایش دهد:
#include <conio.h> #include <iostream> #include <string> using namespace std; int main() { string a(10,'a'); for(int i=0;i<10;i++) { cin>>a[i]; } for(int i=0;i<10;i++) { cout<<a[i]; } getch(); return 0; }
#include <conio.h> #include <iostream> #include <string> using namespace std; int main() { string a,b; cin>>a; int n=a.length(); b=a; //b ra barabar ba a gharar midahim ke tuleshan yeki beshavad!
for(int i=0;i<n;i++) { b[i]=a[i]; } cout<<b; getch(); return 0; }
#include <conio.h> #include <iostream> #include <string> using namespace std; int main() { string a,b; cin>>a; int n=a.length(); b=a; //b ra barabar ba a gharar midahim ke tuleshan yeki beshavad! for(int i=0;i<n;i++) { b[i]=a[n-i-1]; } cout<<b; getch(); return 0; }
#include <conio.h> #include <iostream> #include <string> using namespace std; int main() { string a,b; cin>>a>>b; int n=a.length(); int m=b.length(); string c(n+m,' '); //tule s barabare majmue n+m ast. for(int i=0;i<n;i++) { c[i]=a[i]; } for(int i=n;i<n+m;i++) { c[i]=b[i-n]; } cout<<c; getch(); return 0; }
#include <conio.h> #include <iostream> #include <string> using namespace std; int main() { string a,b; cin>>a>>b; string c=a+b; cout<<c; getch(); return 0; }
#include <conio.h> #include <iostream> #include <string> using namespace std; int main() { string a; cin>>a; for(int i=4;i<8;i++) { a[i]='*'; } cout<<a; getch(); return 0; }
#include <conio.h> #include <iostream> #include <string> using namespace std; int main() { string a; cin>>a; string b="6893"; for(int i=4;i<8;i++) { a[i]=b[i-4]; } cout<<a; getch(); return 0; }
#include <conio.h> #include <iostream> #include <string> using namespace std; int main() { string a; cin>>a; string b; for(int i=7;i>3;i--) //varune kardane a[4-7] dar b[0-3] { b[7-i]=a[i]; } for(int i=4;i<8;i++) //gharar dadane b be jaye a[4-7] { a[i]=b[i-4]; } cout<<a; getch(); return 0; }