নিচের কোডে আমার function কল করতে সমস্যা হচ্ছে। কীভাবে সমস্যাটি সমাধান করব?

#include <bits/stdc++.h>
using namespace std;
#define str string
#define nl endl
#define nw cout<<endl
#define pb push_back
#define spc " "
#define tc(t) while(t--)
#define FAST  ios_base::sync_with_stdio(0);cout.tie(0);cin.tie(0);
typedef long long int lld;
void italic(str a,int i){
    for(;a[i]!='_';i++)
        cout<<a[i];
    cout<<"</i>";
    return i;
}
void bold(str a,int i){
    for(;a[i]!='*';i++)
        cout<<a[i];
    cout<<"</b>";
    return i;
}
int main()
{
    FAST;
    int i;
    str a;
    while(getline(cin,a)){
        for(i = 0; i < a.size(); i++){
            if(a[i]=='_'){
                cout<<"<i>";
                i++;
                italic(str a,int i)
            }
            else if(a[i]=='*'){
                cout<<"<b>";
                i++;
                bold(str a,int i)
            }
            else cout<<a[i];
        }
        nw;
    }
    return 0;
}

asked 24 May, 00:53

pollob1563's gravatar image

pollob1563
27311

edited 24 May, 05:52

Mosharraf%20Hosain's gravatar image

Mosharraf Hosain ♦
1.0k18


ভয়েড ফাংশন থেকে কিছু রিটার্ন করা যায় না। italic()bold() ফাংশন থেকে i রিটার্ন করা যাবে না, অথবা রিটার্ন টাইপ int দিতে হবে।

ফাংশন কল করার সময় আরগুমেন্টের সাথে ডেটা টাইপ লেখা যাবে না। কলের শেষে সেমিকোলনও বাদ পড়েছে।

বড় কোনো ডেটা (অ্যারে, ভেক্টর, স্ট্রিং) ফাংশনে পাস করতে হলে রেফারেন্স বা পয়েন্টার দিয়ে পাস করা উচিত। নাহলে ডেটাগুলোর একটি বাড়তি কপি তৈরি হবে যা মেমোরি ও সময় দুটোই খরচ করে। এক্ষেত্রে ফাংশন ডেফিনিশন হবে এ রকম :

int my_fun(string& s, int a)  // notice & sign after type name
{
    // your code
}
... ...
void print_vector(vector<int>& v)
{
    for (int& item : v)
        cout << item << " ";
    cout << '\n';
}

আর ফাংশন কল করার সময় সি-এর মতো শুধু ভ্যারিয়েবলের নাম দিয়ে কল করতে হবে।

vector<int> v {3, 5, 7, 2, 9};
print_vector(v);
permanent link

answered 24 May, 06:12

Mosharraf%20Hosain's gravatar image

Mosharraf Hosain ♦
1.0k18

Your answer
toggle preview

Follow this question

By Email:

Once you sign in you will be able to subscribe for any updates here

By RSS:

Answers

Answers and Comments

Markdown Basics

  • *italic* or _italic_
  • **bold** or __bold__
  • link:[text](http://url.com/ "title")
  • image?![alt text](/path/img.jpg "title")
  • numbered list: 1. Foo 2. Bar
  • to add a line break simply add two spaces to where you would like the new line to be.
  • basic HTML tags are also supported

Question tags:

×33

question asked: 24 May, 00:53

question was seen: 119 times

last updated: 24 May, 06:12