برنامه ای که یادآوری: نحوه عملکرد توابع strchr و strrchr را نشان میدهد:
#include <iostream>
#include <string>
using namespace std;
void main(void)
{
char ch='r';
char string[] =
"The quick brown dog jumps over the lazy fox";
char fmt1[] =
" 1 2 3 4 5";
char fmt2[] =
"12345678901234567890123456789012345678901234567890";
char* pdest;
int result;
cout<<"String to be searched: \n\t\t"<<string<<"\n";
cout<<"\t\t"<<fmt1<<"\n\t\t"<<fmt2<<"\n\n";
cout<<"Search char:\t"<<ch<<"\n";
/* Search forward. */
pdest=strchr(string, ch);
result=pdest - string + 1;
if( pdest != NULL )
cout<<"Result:\tfirst "<<ch
<<" found at position "<<result<<"\n\n";
else
cout<<"Result:\t"<<ch<<" not found\n";
/* Search backward. */
pdest=strrchr(string, ch);
result=pdest - string + 1;
if( pdest != NULL )
cout<<"Result:\tfirst "<<ch
<<" found at position "<<result<<"\n\n";
else
cout<<"Result:\t"<<ch<<" not found\n";
}
//end
#include <string>
using namespace std;
void main(void)
{
char ch='r';
char string[] =
"The quick brown dog jumps over the lazy fox";
char fmt1[] =
" 1 2 3 4 5";
char fmt2[] =
"12345678901234567890123456789012345678901234567890";
char* pdest;
int result;
cout<<"String to be searched: \n\t\t"<<string<<"\n";
cout<<"\t\t"<<fmt1<<"\n\t\t"<<fmt2<<"\n\n";
cout<<"Search char:\t"<<ch<<"\n";
/* Search forward. */
pdest=strchr(string, ch);
result=pdest - string + 1;
if( pdest != NULL )
cout<<"Result:\tfirst "<<ch
<<" found at position "<<result<<"\n\n";
else
cout<<"Result:\t"<<ch<<" not found\n";
/* Search backward. */
pdest=strrchr(string, ch);
result=pdest - string + 1;
if( pdest != NULL )
cout<<"Result:\tfirst "<<ch
<<" found at position "<<result<<"\n\n";
else
cout<<"Result:\t"<<ch<<" not found\n";
}
//end
- برچسب ها: strchr، strrchr، stringchr، string characters، رشته، تابع، جستجو، جستجو کاراکتر، جستجو رشته، سرچ،
پیاده سازی تابع strrchr
int strlen(const char *s)
{
for(int i=0;s[i];++i);
return i;
}
char *strrchr(const char *s,int c)
{
long i;
for(i=strlen(s)-1;i>=0 && s[i]!=(char)c;i--);
if(i<0)
return NULL;
else
return (char *)&s[i];
}
//end
{
for(int i=0;s[i];++i);
return i;
}
char *strrchr(const char *s,int c)
{
long i;
for(i=strlen(s)-1;i>=0 && s[i]!=(char)c;i--);
if(i<0)
return NULL;
else
return (char *)&s[i];
}
//end
تابع strchr: این تابع اولین مکان یک کاراکتر را در یک رشته یافته و یک اشاره گر از نوع char* به مکان مورد نظر در رشته برمیگرداند. در صورتی که کاراکتر مورد نظر یافت نشود، مقدار NULL بازگردانده میشود. این به شکل کلی زیر به کار میرود:
;(کد اسکی کاراکتر مورد جستجو ,رشته مورد نظر)char* position=strchr
تابع strrchr: تنها تفاوت این تابع با strchr این است که آخرین مکان وقوع کاراکتر را در یک رشته برمیگرداند. به عبارت دیگر این تابع رشته را از انتها برای یافتن نخستین وقوع کاراکتر موردنظر جستجو میکند. به عنوان مثال دستور زیر رشته str را جهت یافتن آخرین وقوع کاراکتر 'b' مورد جستجو قرار میدهد:
char ch='b';
char* position=strrchr(str, ch);
//end
char* position=strrchr(str, ch);
//end
- برچسب ها: strchr، strrchr، تابع جستجو، جستجو رشته ها، جستجو، رشته، جستجو در رشته ها، سرچ در رشته ها، string search،
- کل صفحات:0
تبلیغات
