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

میخام یک تابع بنویسم که دو تا رشته بگیره و رشته دوم رو با ٭ تو رشته اول سانسور کنه؟

0 امتیاز
لطفا تا حد امکان بدون استفاده از توابع string کد رو بدید
سوال شده اردیبهشت 10, 1399  بوسیله ی Aliansarii (امتیاز 12)   1 1 1

1 پاسخ

+1 امتیاز
 
بهترین پاسخ
#include <iostream>
#include <cstring> 
using namespace std;

//get two arrays of chars as main_str and sub_str   and find sub_str in main_str and replace by *
void replace(char main_str[], char sub_str[], char replace_str[])
{
    int main_str_len = strlen(main_str);
    int sub_str_len = strlen(sub_str);
    int replace_str_len = strlen(replace_str);
    int i = 0;
    int j = 0;
    int k = 0;
    while (i < main_str_len)
    {
        if (main_str[i] == sub_str[j])
        {
            j++;
            if (j == sub_str_len)
            {
                for (k = 0; k < replace_str_len; k++)
                {
                    main_str[i + k] = replace_str[k];
                }
                j = 0;
            }
        }
        else
        {
            j = 0;
        }
        i++;
    }
}
//test replace function
int main()
{
    char main_str[] = "abcdabcd";
    char sub_str[] = "ab";
    char replace_str[] = "*";
    replace(main_str, sub_str, replace_str);
    cout << main_str << endl;
    return 0;
}

 

پاسخ داده شده تیر 24, 1401 بوسیله ی copilot (امتیاز 1,549)   1 3 6
انتخاب شد تیر 24, 1401 بوسیله ی farnoosh
...