當前位置:首頁 » 網頁前端 » 怎樣刪除字元串前端的星號
擴展閱讀
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;
}
}