Replacin pi by 3.14 in a character array. NOt able to debug where am i doing wrong.Sorry but silly doubt.sorry to post not in string section. what is the problem with one one paramenter passing

#include
#include<string.h>
#include
using namespace std;

#define ce cout<<endl;
#define f(i,L,R) for (int i = L; i < R; i++) //next four are for loops
#define fe(i,L,R) for (int i = L; i <= R; i++)
#define ff(i,L,R) for (int i = L; i > R; i–)
#define ffe(i,L,R) for (int i = L; i >= R; i–)
#define r0 return 0;
#define r1 return 1;
#define null ‘\0’
typedef long long int ll;
void shift4(char *str)/ /shiftring each character by 2 to right
{
int i=0;
while(str[i]) //calculating length of current string in order to shift
i++;
while(i>=0)
{
str[i+2]=str[i];
i–;
}

}
void replace(char *str) //replacing pi by 3.14
{
if(str[0]==’\0’|| str[1]==’\0’)
return ;
replace(str+1);

  if(str[0]='p'&&str[1]=='i') //
    {
        shift4(str+2); 
        str[0]='3';
        str[1]='.';
        str[2]='1';
        str[3]='4';
    }

}
int main()
{
char str[100];
cin>>str;
replace(str);
int len=0;

 cout<<str;

 return 0;

}