本文目錄一覽:
C語言程序 去首尾空格怎麼編
可以分別用單循環實現:
#includestdio.h
void work(char s[]) //刪除首尾空格
{int i,j;
for(i=0;s[i]==’ ‘;i++); //找到開頭第一個非空格
for(j=0;s[i];)s[j++]=s[i++]; //刪除開頭空格
for(i–;s[i]==’ ‘;i–)s[i]=’\0’; //刪除末尾空格
}
void main()
{
char s[100]=” Hello! How are you? “;
work(s);
printf(“s=\”%s\”\n”,s); //輸出的串中已經沒有首尾空格了
system(“pause”);
}
C語言編程去掉首尾*的問題,字元中間*不去掉
h是從左至右數第一個不是*的字元,那麼a[j]=a[h+j];就是當j==0時把第一個不是*的字元拷貝到a[0],j++;後j成了1,就是把從左數第一個不是*的字元後面的字元(有可能也是*)拷貝到a[1]……就這樣一直拷下去,直到j剛好len-h-e是為止——len是整個字元串的長度,h是前面的*的個數,e是後面的*的個數,那麼len-h-e就是去掉前後*的字元個數,顯然while(jlen-h-e)這個循環就把中間那些字元移到從a[0]開始的最前面了,然後由a[j]=0;在後面添加一個結束符,就完成刪除任務了!
C語言怎樣從字元串中刪除確定頭尾字元的字元串?
很簡單:字元串以’\0’為結尾,只要執行:a[1]=’\0′,或者a[1]=0即可。
如果不是刪除到末尾,只要把後面的移動到前面來覆蓋要刪除的部分即可,最後一個是’\0’:
比如,要刪除上面字元串中”am a”4個字元:
i=2;
do {a[i]=a[i+4];while(i++,a[i+4]);
C語言 不用指針 去除首尾的特殊符號
不用指針也能做到呀?
void trim(char s[],char c)
{
int i=0,j=0;
char t[1001];
while(s[i]==c)i++;
while(t[j]=s[i++])j++;
while(t[–j]==c);
t[++j]=’\0′;
for(i=0;s[i++]=t[i++];)
}
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/193301.html