当前位置:首页 » 网页前端 » 怎样删除字符串前端的星号
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

怎样删除字符串前端的星号

发布时间: 2022-09-27 04:34:21

c语言 删除字符串中指定的星号

#include<stdio.h>
intmain()
{
chars[100],*p,*q;
puts("输入小于100个字符:");
gets(s);
for(p=s,q=s;*p!='';p++)
if(*p!='*')*q++=*p;
*q=*p;
puts(s);
return0;
}

运行结果

⑵ 请用C代码完成去掉字符串前后的星号

下面的代码对空格和星号都有效果,字符串中左边和右边所有的空格和星号都不会被打印:

#include<stdio.h>
#include<string.h>

voidmytrim(char*pStr)
{
char*pStart=pStr;
char*pEnd=pStr;
intcount=0;
if(pStr==NULL||strlen(pStr)==0)
{
printf("thestringisNULL ");
return;
}


while(*pStart==''||*pStart=='*')
{
pStart++;
count++;
}
if(count==strlen(pStr))
{
printf("isallthe*andspace! ");
return;
}

while(*pEnd!='')
pEnd++;
pEnd--;

while(*pEnd==''||*pEnd=='*')
pEnd--;


while(pStart<=pEnd)
{
printf("%c",*pStart);
pStart++;
}
printf(" ");
}

intmain()
{
mytrim("");
mytrim("*******");
mytrim("**************");
mytrim("ABCAA*B");
mytrim("**ABC**ABCAADD******");
mytrim("********A*BC***DEF*G");
mytrim("********A*BC***DEF*G****");
return0;
}

输出结果:


is all the * and space !
is all the * and space !
is all the * and space !
ABC AA * B
ABC**ABC AADD
A*BC***DEF*G
A*BC***DEF*G

⑶ c语言怎么删掉字符串的前几个字符

现在有一串字符需要输入,规定输入的字符串中只包含字母和*号。请用C语言编写程序,实现以下功能:除了字符串前后的*号之外,将串中其他的*号全部删除。

例如,假设输入的字符串为****A*BC*DEF*G********,删除串中的*号后,字符串变为****ABDEFG********

该问题需要对字符串进行操作,而在C语言中没有专门的字符串变量,因此如果需要将一个字符串存放在变量中,则必须使用字符数组,即使用一个字符型数组来存放一个字符串,数组中的每一个元素存放一个字符。

C语言如何删除字符串前后星号?

C语言/C++学习请加:556791282群内有更多资料哦!

算法分析

设置两个指向字符的指针变量t和f。先使用循环语句让t指针指向字符串中最后一个字符,而f指针指向字符串中第一个字符;再判断t和f指向的字符是否为“*”,如果为“*”,则t指针自减,f指针自增,直到遇到第一个不是的字符为止。

再定义一个函数fun()用于删除字符串中的“*”号,同时保留字符串前后的“*”号。

下面是完整的代码:

#include <stdio.h>

int fun(char *a, char *h, char *p)

{

int i, j;

/*删除指针h与p之间的所有“*”*/

for(i=0,j=0; &h[i]<p; i++)

if(h[i]!='*')

h[j++]=h[i];

/*将指针p至字符串尾部的所有字符前移*/

for(i=0; p[i]; i++,j++)

h[j]=p[i];

h[j]='\0'; /*在字符串尾部添加结束标志*/

return 0;

}

int main( )

{

char s[81], *t, *f;

printf("Enter a string :\n");

gets(s); /*输入字符串*/

t=f=s; /*用字符指针t、f指向串s*/

while(*t)

t++;

t--; /*将指针t定位到字符串中最后一个字符*/

while(*t == '*') /*指针t指向字符串中最后一个字符*/

t--;

while (*f == '*') /*指针f指向字符串中第一个字符*/

f++;

fun(s, f, t);

printf("The string after deleted:\n"); /*输出结果*/

puts(s);

return 0;

}

运行结果:

Enter a string :

****A*BC*DEF*G********

The string after deleted:

****ABCDEFG********

C语言学习其实并不难,只要你有决心,够努力,就会成功。想免费学习的可以加脱线下面得号!

⑷ 有以下字符串:****A*BC*DEF****,删除字符串前面的星号,得到如下结果:A*BC*DEF****

你的二重循环有问题,会覆盖结果

#include<stdio.h>
#include<string.h>

intmain(){
chara[20]={'*','*','*','*','*','A','*','B','C','*','D','E','F','*','*','*','*'};
chara1[20];
inti,j,k=0;
for(i=0;i<6;i++){
if(a[i]=='A')break;
a[i]='';
}
j=i;
while(j<20&&k<16){
a1[k]=a[j];
k++;
j++;
}
a1[k]='';
for(intm=0;m<16;m++){
printf("%c",a1[m]);
}

}

⑸ 用c语言编写程序删除字符串中间的'*'号

#include<stdio.h>
int main()
{
int i=0, j = 0;
char str1[100], str2[100];
scanf_s("%s", str1,100);
while ( str1[i] != '\0')
{
if (str1[i] != '*')
{
str2[j] = str1[i];
j++;
}
i++;

}
str2[j] = '\0';
printf("%s\n", str2);
return 0;
}
其中scan_s那一列中的 _s 和 ,100 是由于在visual studio 2019上编写的,其他编译器可能不一定需要,去掉即可

⑹ BAT去除任意字符串中的星号*

只要你的数据能赋值给"name"下面BAT即可去掉特殊字符
------------------------------------------------
@echo off
set name=1\2/3:4"5?6*7<8>9|01\2/3:4"5?6*7
echo %name%
set name=%name:\=%
set name=%name:/=%
set name=%name::=%
set name=%name:?=%
set name=%name:<=%
set name=%name:>=%
set name=%name:|=%
:b
if 1==%name%1%name% goto a
set wi1=%name:~0,1%
if **==%wi1%%wi1% set wi1=
if ""==%wi1%%wi1% set wi1=
set name=%name:~1%
set wi=%wi%%wi1%
goto :b
:a
echo %wi%
pause

⑺ 编写函数,删除字符串中间的星号(*)。函数声明为: void delete(char *s);

// 假定参数s指向以0结尾的C语言字符串
void delete(char* s)
{
if(s!=NULL)
{
char* p = s;
char* q = s;
while ((*q)!=0)
{
if((*q)!='*')
{
if(p!=q)
{
(*p)=(*q);
}
p++;
}
q++;
}
(*p)=0;
}
}