PDA

View Full Version : سوال: برعکس کردن آرایه ای از رشته ها



goodfriends
چهارشنبه 07 اسفند 1387, 12:29 عصر
تابعی تو سی هست که بشه ارایه ای از رشته رو برعکس کرد یعنی کاراکترها جابه جا شوندمثل scdfرو تبدیل کنه بهfdcs ؟

obscure
چهارشنبه 07 اسفند 1387, 12:41 عصر
سلام.نمی دونم که تابعی وجود داره که دقیقا این کارو بکنه یا نه...
ولی یه روش ساده برای این کار استفاده از تابع strlen() در هدر string.h و یک حلقه هست.این تابع طول رشته رو بر می گردونه...مثال:

char a[10];
cin>>a;
int n;
n = strlen(a);
for(int i=n-1;i>=0;i--)
cout<<a[i];
n-1 به این خاطر که آرایه از صفر شروع میشه.

SamaPic
چهارشنبه 07 اسفند 1387, 22:58 عصر
با سلام خدمت دوستان عزيز.

پاسخ شما دستور زير است.


strrev(نام رشته);
اين دستور كاراكتر هاي يك رشته رامعكوس مي كند.كاراكتر ابتدا را به انتها و بر عكس.
كد زير طريقه ي استفاده از اين دستور را نشان مي دهد.



#include<stdio.h>
#include <string.h>
#include <conio.h>
void main()
{
char a[10]="PIC"
strrev(a);
printf (a);
}


اميدوارم به جواب خود رسيده باشيد.
باز هم بگوييد كتاب جعفر نژاد بد است.شما بلد نيستيد اين كتاب را بخوانيد و سپس مي گوييد ضعيف است.(با شما دوست عزيز نبودم)
خدانگهدار.

Salar Ashgi
پنج شنبه 08 اسفند 1387, 10:59 صبح
سلام به شما دوست گرامی ، رشته آرایه ای از کاراکتر هاست و شما گفتید آرایه ای از

رشته ها که اون وقت بحث فرق میکنه !!!


تابعی تو سی هست که بشه ارایه ای از رشته رو برعکس کرد یعنی کاراکترها جابه جا شوندمثل scdfرو تبدیل کنه بهfdcs ؟

فکر کنم منظورتون همون مورد اول باشه !!!!

بهتره عادت کنیم هر کارمون رو خودمون انجام بدیم و از فایل های کتابخانه ای استفاده نکنیم

کد مورد نظر شما :


#include <iostream>
#include <conio>
void rev(char a[],int n){
char temp;
for(int i=0;i<n/2;i++){
temp = a[i];
a[i] = a[n-1-i];
a[n-1-i] = temp;}
}
int main(){
char a[20];
cout<<"Enter Your String :\n";
cin.getline(a,20);
int k=0;
for(int i=0;a[i]!=NULL;i++)
k++;
rev(a,k);
cout<<a;
getch();
}

این تابع تغییرات رو ، رو خود آرایه اعمال میکنه !!!

موفق و پیروز باشید !!!

SamaPic
پنج شنبه 08 اسفند 1387, 23:03 عصر
با سلام خدمت دوست عزيز.


سلام به شما دوست گرامی
بهتره عادت کنیم هر کارمون رو خودمون انجام بدیم و از فایل های کتابخانه ای استفاده نکنیم.



دوست عزيز گفته ي شما بجا ست ولي گاهي اوقات انسان مجبور مي شود از اين توابع استفاده كند.
بهتر است در كنار گفته ي شما دستورات مربوطه را هم انسان ياد بگيرد.
خدانگهدار.

Nima_NF
جمعه 09 اسفند 1387, 01:15 صبح
بهتره عادت کنیم هر کارمون رو خودمون انجام بدیم و از فایل های کتابخانه ای استفاده نکنیمبهتر هست عادت کنیم تا زمانی که چیزی عضو استاندارد در یک زبان هست وقت خود را بیهوده تلف نکنیم و یاد بگیریم که چطور از آن ها استفاده کنیم. هم کدهای با کیفیت تری خواهیم نوشت و هم برنامه 10 خطی را با 1000 خط کد به مشتری تحویل نمی دهیم!

البته اگر منظور شما یادگیری هست، برای شروع نوشتن این موارد بد نیست، اما نباید به یک عادت تبدیل شود و سعی کنیم در سایر برنامه هایمان، خودمان دوباره آن ها را پیاده سازی نکنیم.