
آموزش کار با رشته ها در زبان c یا c++
رشته در c++ در زبان سی یا c++ نوع داده ی string وجود ندارد و رشته را با استفاده
از آرایه ای از کاراکترها پیاده سازی می کنیم (بهمراه سورس کد کپی رشته و معکوس و چسباندن و طول رشته در سی پلاس پلاس)مثلا :
unsigned char s[100] ;
نکته :
در زبان c یا c++ انتهای رشته ها را با عدد صفر ( کاراکتر با کداسکی صفر )
مشخص میشوند. بنابراین برای ذخیره سازی یک رشته با حداکثر طول n
حتما آرایه ای به طول n+1 تعریف کنیم.
کلیه دستورات و توابعی که با رشته ها کار می کنند از عدد صفر برای شناسایی انتهای رشته استفاده می کنند.
مقداردهی اولیه به رشته ها به صورت زیر است :
unsigned char s[10] = " ABCD "
s[0] ='A'
s[1] = 'B'
scanf ( " %s " , s );
printf ( "%s " , s );
نکته :
برای دریافت یا چاپ به امپرساین احتیاجی نیست.
تابع gets : برای دریافت رشته از صفحه کلید از این تابع استفاده می شود.
gets(s1)
تابع puts : برای چاپ رشته در صفحه نمایش استفاده می شود.
puts(s1)
مثال :سورس طول رشته
برنامه ای بنویسید که یک رشته را دریافت و طولش را بنویسد.
void main()
{
char s[100] ; int i;
gets(s);
for( i=1 ; s[i] ; i++ );
cout<< i;
}
مثال :سورس کپی در سی
برنامه ای بنویسید که رشته s1 را گرفته و ان را در s2 کپی کند.(سورس کد برنامه کپی رشته)
void main()
{
char s1[100] , s2[100]; int i;
gets(s1);
for( i=0 ; s[i] ; i++)
s2[i]=s1[i];
s2[i+1]=0;
}
مثال : سورس چسباندن دو رشته در سی
برنامه ای بنویسید که s1 و s2 را گرفته و s2 را به اخر s1 بچسباند.(سورس کد برنامه چسباندن دو رشته)
void main()
{
char s1[100] , s2[100]; int i ,j;
gets(s1); gets(s2);
for( i=0 ; s1[i] ; i++);
for( j=0 ; s2[j] ; j++ , i++)
s1[i]=s2[j];
s1[i]=0;
}
مثال : سورس معکوس رشته در سی
برنامه ای بنویسید که رشته ای را گرفته و ان را معکوس کند.(سورس کد برنامه معکوس رشته)
void main()
{
char t , s[100]; int i ,j;
gets(s);
for( i=0 ; s[i] ; i++);
i-- ;
for( j=0 ; j<i ; j++ , i--)
{
t=s[i]; s[i]=s[j]; s[j]=t;
}
s[i+j+1]=0;
}