这个代码的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同学正解~
多谢各位大神帮助,问题已经成功解决