

为什么在红色框框那加个等于号 就可以正常运行 否则 就乱码 是因为字符串数组最后一个必须是\0吗 所以多一个长度给它 可是不就等于b【len】=a【-1】了吗 这是可以有的吗


关注【相关推荐】

修改前
#include <stdio.h>
void fun(char *p, char *b)
{ int i, k=0;
while(*p)
{ i=1;
while( i<=3 && *p ) {
/**********found**********/
b[k]=p;
k++; p++; i++;
}
if(*p)
{
/**********found**********/
b[k++]=" ";
}
}
b[k]='\0';
}
void main()
{ char a[80],b[80];
printf("Enter a string: "); gets(a);
printf("The original string: "); puts(a);
fun(a,b);
printf("\nThe string after insert space: "); puts(b); printf("\n\n");
}
修改后
#include <stdio.h>
void fun(char *p, char *b)
{ int i, k=0;
while(*p)
{ i=1;
while( i<=3 && *p ) {
/**********found**********/
b[k]=*p;
k++; p++; i++;
}
if(*p)
{
/**********found**********/
b[k++]=' ';
}
}
b[k]='\0';
}
void main()
{ char a[80],b[80];
printf("Enter a string: "); gets(a);
printf("The original string: "); puts(a);
fun(a,b);
printf("\nThe string after insert space: "); puts(b); printf("\n\n");
}
C语言中双引号与单引号的区别b[k++]=' ';运行结果如下:

b[k++]=" ";运行结果如下:

学点啥