|

楼主 |
发表于 2020-12-23 16:49:42
|
显示全部楼层
#include <stdio.h>
#include <string.h>
void fun(char * a)
{
int c , i , j , m ;
for(m = 0 ; a[m] ; m ++) ; /*m是用来记该字符串的个数,当a[m]='\0'时,循环截止*/
for(i = 0 ; i < m && a[i] == '*' ; i ++) ; /*该行是用来跳过该字符串开头处的 *的,用i++表示首字母的下标*/
for(c = 0 , j = i ; i < m ; i ++)
{
if(a[i] != '*')
{
a[j ++] = a[i] ;
if(c) c = 0 ; /*当a[i]为字符时将其打印出来,用a[j]表示,并将c定义为0*/
}
else c ++ ; /*当a[i]为*时,将c进行+1操作,c实则是用来表示该字符串尾部的*个数 */
}
for(i = 0 ; i < c ; i ++) a[j ++] = '*' ; /*此行用于输出尾部的*号*/
a[j] = '\0' ; /*此行用于输出最后一个结尾标志字符\0*/
}
main()
{
char s[81] ;
printf("Enter a string: ") ;
gets(s) ;
fun(s) ;
printf("The string after deleted:\n") ;
puts(s) ;
}
更新一波(自己的理解,若有不对,还望各位不吝赐教)~~ |
|