前续和后续字符 C语言,字符串中间和后边*号删除 (C语言代码)

解题思路:

1.在搜索全串过程中,若开始有'*',就将前导'*'存入另一串中,直到发现其它字符或串尾;

2.原串后续所有字符在未到串尾前,若非'*',就接着存入到另一串;

3.将处理好的另一串存回原串。

注意事项:

在步骤二过程中,原串字符非'*'时,访问另一串的下标才可以增加接收新字符,而原串的下标顺序增加访问接下来的字符。

参考代码:#include

int main(){

void fun(char *);

char s[81];

gets(s);

fun(s);

puts(s);

return 0;

}

void fun(char *a){

int i,j;

char b[81];

for(i=0;a[i]=='*'&&a[i]!='\0';i++)

b[i]=a[i];//若开始有*就将字符串a前导的*号保存到b中

j=i;

while(a[i]!='\0'){

if(a[i]!='*') b[j++]=a[i];

i++;

}//a后续字符若非*就保存到b中

b[j]='\0';

for(i=0;b[i]!='\0';i++)

a[i]=b[i];//处理好的b串存回a串

a[i]='\0';

}

你可能感兴趣的:(前续和后续字符,C语言)