刚学c语言向各位大神求救

这个代码的m值当输入you are yourself时应该是15
但是奇怪的变成了19望各位大大帮我看看,不胜感激
源代码:
#include
#include
int main()
{
int i,n=0,m;
char A[100],B[100];
gets(A);
m=strlen(A);
for(i=0;i<=m-1;i++)
{
if(A[i]=='y'&&A[i+1]=='o'&&A[i+2]=='u'&&i<=m-3&&A[i+3]==' ')
{

    B[n]='w';
    n++;

    B[n]='e';
    n++;

    i=i+2;
}
else
{
    B[n]=A[i];
    n++;

}
}
m=strlen(B);
for(i=0;i<m;i++)
    printf("%c",B[i]);
return 0;

}

你的程序目前输出是乱码。说下你的程序想实现什么

输出结果是“we are yourself”

m=strlen(A);//返回m个字符数,在字符串使用时要加一个结束符0,即用m+1

    for(i=0;i<=m;i++)//修改

缺少'\0'检测,字符数组越界,输出数目自然不对,ysuwood同学正解~

多谢各位大神帮助,问题已经成功解决