View Full Version : String
benyamin_pc
سه شنبه 18 مهر 1385, 17:14 عصر
سلام
یه رشته داریم a[20] l
حالا چطوری میشه این رشته را از کاربر گرفت و محتویات کل خونه هاشو با چنتا کلمه مقایسه کرد
مثلا کاربر یه چیزی وارد میکنه اگه hi بود یه کاری انجام شه اگه Hello بود یه کار دیگه و.....
مقصودم اینه که چسور میشه حروفی رو که تو کل خونه ها هستن رو یه جا با هم با یه کلمه مقایسه کرد؟
از اشاره گر میشه ؟
میشه یه جوری با اشاره گر به کل a اشاره کرد و به کل محترا اشاره کنه؟و اون رو یه جوری مثل آرگومان به switch فرستاد و با Case ها مقایسش کرد؟
mzjahromi
سه شنبه 18 مهر 1385, 18:05 عصر
اگر منظورت رو اشتباه نفهمیده باشم strcmp این کار رو واسه ات انجام میده فکر میکنم خروجی 0 معنی برابری میده
benyamin_pc
چهارشنبه 19 مهر 1385, 15:52 عصر
از طریق اشاره گر میشه بگین؟
mzjahromi
چهارشنبه 19 مهر 1385, 16:04 عصر
همچین چیزی نمیشه
اشاره گر به یه خونه اشاره میکنه(خونه شروع)
حتی همون تابع که گفتم هم خودش یه دستور نیست
plus
یک شنبه 23 مهر 1385, 06:30 صبح
با استفاده از اشاره گر هم میتونی تک تک خونه ها رو تست کنی یعنی مثل این میشه که خودت تابع lstrcmp رو بنویسی..
mzjahromi
یک شنبه 23 مهر 1385, 11:01 صبح
با استفاده از اشاره گر هم میتونی تک تک خونه ها رو تست کنی یعنی مثل این میشه که خودت تابع lstrcmp رو بنویسی..
با توجه به سوال منظور ایشون یک دستور تک هست نه حلقه
zahra_ah
یک شنبه 23 مهر 1385, 21:30 عصر
با سلام
من به پیاده سازی توابع strcmp و concatدو رشته نیاز دارم می تونید کمکم کنید؟
powerboy2988
یک شنبه 23 مهر 1385, 21:52 عصر
تابع ( )strcmp :
این تابع دو رشته کارکتر را به صورت حرفی مقایسه می کند. نمای کلی این تابع به صورت زیر است:
(int strcmp(const char *st1 , const char *st2
نحوه عمل تابع به صورت زیر است:
st1<std2 حاصل منفی
st1=std2 حاصل صفر
st1>std2 حاصل مثبت
--------------------
تابع concat دو رشته را با هم ادغام می کند
محمد صادق
سه شنبه 25 مهر 1385, 04:46 صبح
بسمه تعالی
سلام
benyamin_pc
خب چرا از strstr استفاده نمی کنی که یک رشته رو توی یک رشته دیگه جستجو می کنه؟
خروجی این تابع یک اشاره گری هست به اولین مکان رشته ای که می خواهیم آنرا پیدا کنیم
(char *strstr( char *a,char *b
که رشته a رو توی b جستجو میکنه
zahra_ah
اگه منظورت از concat ،تابع strcat باشه هر دو تابع را نوشته ام:
void strcat(char *a,const char *b)
{
int i,j;
j=strlen(a);
for(i=0;*(b+i)!='\0';i++,j++)
*(a+j)=*(b+i);
}
int strcmp(const char *a,const char *b)
{
int i;
for(i=0;*(a+i)==*(b+i) && *(a+i) && *(b+i);i++);
return (*(a+i)-*(b+i));
}
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.