假定输入的字符串中只包含字母和号。请编写函数fun(),它的功能是:除了字符串前导的之外,将字符串中其他号全部删除。在编写函数时,不得使用C语言提供的字符串函数。例如,输入*ABC*DEFG***,删除后,字符串中的内容应当是ABCDEFG。
遍历字符串,将不是*号的字符放到字符串开头位置
#include <stdio.h>
int main()
{
char s[100];
int i=0,j=0,flag = 1;
gets(s);
while(s[i] != '\0')
{
if(s[i] == '*')
{
if(flag == 1)
s[j++] = s[i];
}
else
{
flag = 0;
s[j++] = s[i];
}
i++;
}
s[j] = 0;
printf("%s",s);
}
char * fun(char *src,char *dest)
{
char *p1,*p2;
p1 = src,p2=dest;
while(*p1)
{
if(*p1!='*‘)*p2++=*p1;
p1++;
}
*p2 = 0;
return dest;
}
供参考:
#include <string.h>
#include <stdio.h>
void fun(char* a)
{
int flg = 0;
char* p = a;
while (*p) {
if (*p == '*' && flg == 0) {
*a++ = *p++;
}
else {
flg = 1;
if (*p != '*')
*a++ = *p++;
else
p++;
}
}
*a = '\0';
}
int main()
{
char s[81];
printf("Enter a string :\n");
gets(s);
fun(s);
printf("The string after deleted:\n");
puts(s);
return 0;
}