有以下字符串:****A*BC*DEF****,删除字符串前面的星号,得到如下结果:A*BC*DEF****

麻烦看下我这么敲为什么输出的是一堆星号啊
2025-06-21 12:05:39
推荐回答(1个)
回答1:

你的二重循环有问题,会覆盖结果

#include
#include

int main(){
char a[20]={'*','*','*','*','*','A','*','B','C','*','D','E','F','*','*','*','*'};
char a1[20];
int i,j,k=0;
for(i=0;i<6;i++){
if(a[i]=='A') break;
a[i]='\0';

j=i;
while(j<20 && k<16){
a1[k]=a[j];
k++;
j++;
}
a1[k]='\0';
for(int m=0;m<16;m++){
printf("%c",a1[m]);
}

}