删除所有星号
例如,假设输入的字符串为*****ABC***DE***FG*****,删除串中的号后,字符串变为ABDEFG
#include<stdio.h>
int main()
{
char a[1000];
int i=0,n=0;
gets(a); //输入字符串;
while(a[i]!='\0')
{
if(a[i]!='*')
{
a[n]=a[i];
n++;
i++;
}
else
i++;
} //如果不是星号赋给新字符串a[n],如果是星号不执行,接着判断下一个;
a[n]=0; //新字符串末尾加\0;
puts(a); //输出新字符串a[n];
return 0;
}
删除前边星号
例如,假设输入字符串为*****ABC***DE***FG*****,删除串中星号后,字符串变为ABC***DE***FG*****
#include<stdio.h>
int main()
{
char a[1000];
int i=0,n=0;
gets(a); //输入字符串;
while(a[i]=='*')
i++; //判断字符串开始星号个数;
while(a[i]!='\0')
{
a[n]=a[i];
n++;
i++;
} //字符串最后星号赋给新字符串a[n];
a[n]=0; //新字符串末尾加\0;
puts(a); //输出新字符串a[n];
return 0;
}
删除后边星号
例如,假设输入字符串为*****ABC***DE***FG*****,删除串中星号后,字符串变为*****ABC***DE***FG
#include<stdio.h>
int main()
{
char a[1000];
int i=0,n=0,k,w,t=0;
gets(a); //输入字符串;
for(k=0;a[k];k++); //k:字符串个数;
w=k;
while(a[k-1]=='*')
{
k--;
t++;
} //t:字符串最后星号个数;
while(i<(w-t)) //从开始星号后的字符开始判断直到最后星号前;
{
a[n]=a[i];
n++;
i++;
} //字符串除开始星号赋给新字符串a[n];
a[n]=0; //新字符串末尾加\0;
puts(a); //输出新字符串a[n];
return 0;
}
删除中间星号
例如,假设输入字符串为*****ABC***DE***FG*****,删除串中星号后,字符串变为*****ABCDEFG*****
#include<stdio.h>
int main()
{
char a[1000];
int i=0,n=0,k,w,t=0;
gets(a); //输入字符串;
for(k=0;a[k];k++); //k:字符串个数;
w=k;
while(a[k-1]=='*')
{
k--;
t++;
} //t:字符串最后星号个数;
while(a[i]=='*')
{
a[n]=a[i];
n++;
i++;
} //n:字符串开始星号赋给新字符串a[n];
while(i<(k-t)) //从开始星号后的字符开始判断直到最后星号前;
{
if(a[i]!='*')
{
a[n]=a[i];
n++;
i++;
}
else
i++;
} //如果不是星号赋给新字符串a[n],如果是星号不执行,接着判断下一个;
while(a[i]!='\0')
{
a[n]=a[i];
n++;
i++;
} //字符串最后星号赋给新字符串a[n];
a[n]=0; //新字符串末尾加\0;
puts(a); //输出新字符串a[n];
return 0;
}
|