コードが正しく動作しません。何が間違っていましたか? タイトルが示すように、「pi」を 3.14 に置き換える新しい文字列を作成することになっています。pi と入力すると問題なく動作しますが、「pipi」のようなものを入力すると、3.143.14 ではなく 3.14 しか返されません...助けてくれてありがとう:)
#include<stdio.h>
#include<string.h>
char c[50];
char xy(char a[],int b)
{
if(b>=strlen(a))
return a;
else if(a[b]=='p' && a[b+1]=='i'){
c[b]='3';
c[b+1]='.';
c[b+2]='1';
c[b+3]='4';
return xy(a,b+4);}
else if(a[b]!='i') {
c[b]=a[b];
return xy(a,b+1);
}
}
int main()
{
char a[50];
scanf("%s",&a);
xy(a,0);
printf("%s",c);
return 0;
}