删除前中后端:
- 删除后端:首先找到字符串结尾,从最后一个字符开始往前判断是否为‘*’;在不是 芯号的后面一个位置加上结束符
- 删除前端:定义一个临时指针p初始化指向原串,把指针p指向前端最后一个芯号的后面;把p后面的字符串拷贝给原串并加上结束符
- 删除中端:定义一个临时指针p初始化指向原串,把前端的芯号拷贝给原串,统计后端的芯号个数n,把字母放入原串,把后端芯号放入原串
保留前端终端后端:
- 保留前端:定义一个临时指针p,初始指向原字符串; 利用循环语句把前端号拷贝到原字符串;移动指针把后面的非号字符串拷贝到原串;最后加上结束符
- 保留后端: 两个循环语句实现,第一个保留指针p所指字母以前的字母 ;第二个将指针p以后的*保留。结束的时候加上 结束符号‘\0'(指针p初始指向最后一个字母)
- 保留中端:定义一个临时指针p初始化指向原串,把指针指向前端第一个字母;把后面的字符串拷贝给原串,首先找到字符串结尾,从最后一个字符开始往前判断是否为‘*’;在不是 芯号的后面一个位置加上结束符
把前端的*移到后端
- 定义一个临时指针p;初始指向原字符串;统计前端出现的*个数n并移动指针到前端第一个字母;把p后面的字符串全部拷贝给原串,在原串后面加上n个芯号并加上结束符
void fun( char *a )
{
int i=0,n=0;
char *p;
p=a;
while(*p=='*')
{ n++;p++;}
while(*p)
{a[i]=*p;i++;p++; }
while(n!=0)
{a[i]='*';i++;n--; a[i]='\0'; }
}
使字符串的前导*不多于n个:
void fun(char* a,int n)
int i,j=0;
char *p,*t;
p=t=a;
while(*t=='*')
{j++;t++}
if(j>n)
{while(*p)
{a[i++]=*(p+j-n);
p++;
}
a[i]='\0';
}}