برنامه تابع strstr - هفت خط کد انجمن پرسش و پاسخ برنامه نویسی

برنامه تابع strstr

0 امتیاز

سلام دوستان

اول میشه یکی برام تابع strstr را توضیح بده (کامل)

میخوام تابع strstr را بنویسم .. میشه کمکم کنین ..

تا اینجا نوشتم اصلا نمیدونم درسته یا نه

char* fun(char a[], char b[] , int n )
{
	int i = 0;
	while(i<n)
	{
		if((strcmp(a,b) == 0))
		{
			i++;
		fun(a,b,n-1);
		}
		else
			i++;

 

سوال شده آذر 24, 1392  بوسیله ی Azar (امتیاز 628)   29 43 61
دوباره تگ گذاری شد آذر 30, 1392 بوسیله ی BlueBlade

1 پاسخ

+2 امتیاز
 
بهترین پاسخ

سلام  تابع strstr یک اشاره گر به محل اولین b موجود تو a برمی گردونه .

می تونی این جوری پیاده سازیش کنی :

#include <iostream>
#include <cstring>

char*  strstr(char a[],char b[])
{
    int aSize=strlen(a);
    int bSize=strlen(b);

    for(int i=0;i<aSize-bSize+1;i++)
    {
        int fNum=0;
        for(int j=0;j<bSize;j++)
        {
            if(a[i+j]==b[j])
                fNum++;
        }
        if(fNum==bSize)
            return (a+i);
    }
    return NULL;

}
int main()
{
    char a[]="Hello world !";
    char b[]="wo";
    std::cout<<strstr(a,b);
}

 

پاسخ داده شده آذر 25, 1392 بوسیله ی BlueBlade (امتیاز 15,315)   15 18 89
انتخاب شد آذر 27, 1392 بوسیله ی مصطفی ساتکی
تابع strstr یک اشاره گر به محل اولین b موجود تو a برمی گردونه
این یعنی چی ؟
یعنی مکان برمیگردونه یا اینکه اون را پیدا میکنه و تمام رشته بعد از اون راچاپ میکنه ؟؟؟
میشه تابعتون را هم توضیح بدین ..
ممنون
یعنی آدرس اولین خونه  اولین b داخل a رو بر می گردونه .
وقتی که cout می کنیم از اون محل به بعد چاپ میشه
تابع هم ما کاراکتر کاراکتر با for اول میریم جلو
 for دوم اندازه کارکتر های عدد میره جلو چک می کنه ببینه رشته همون هست یا نه .
...