你的代碼中 *(--s)=*(++s);這句有問題,這句執行順序是先執行兩邊的自加和自減操作,最後再執行賦值,所以實際上是把自己的值賦給了自己,所以字元串毫無變化,改成*(s) = *(s+1);就好了,其他語句不用動。
希望採納
❷ C語言-刪除字元串中指定的字元
一、問題描述:從鍵盤輸入一個字元串給str和一個字元給c,刪除str中的所有字元c並輸出刪除後的字元串str。
1、輸入:第一行是一個字元串; 第二行是一個字元。
2、輸出:刪除指定字元後的字元串。
二、設計思路:
1、 同插入問題,定義兩個字元數組a,b。以及標志刪除位置的int型pos。
2、用gets函數輸入數組a的值,並利用for循環將數組a 到 數組b。
3、利用for循環,令pos位的數組b元素賦值到a。
三、實現代碼如下:
具體執行結果同上。
❸ 怎麼在c語言字元數組中刪除一個字元
字元數組中刪除指定字元的方法:
輸入一個字元串,以回車結束
輸入指定字元
定義一個遍歷字元串的下標變數和一個新的字元串下標變數
循環遍歷字元串,
如果當前字元與指定字元不同,則將當前字元寫入新下標位置,新下標+1
(相同則不處理)
遍歷下標+1檢測下一個
遇到字元串結束符,結束循環
循環結束後,新下標位置字元串結束符
輸出新的字元串
參考代碼:
❹ C語言如何實現刪除字元串中的字元
C語言刪除字元串中指定字元可以參考下面的代碼:
#include<stdio.h>
int main
{
char * fun(char * s);
char arg[] = "hello.cgi?name1=value1&name2=value2";
printf("This value :%s ",fun(arg));
getchar();
return 0;
}
char * fun(char * s)
{
char *s1 = s; //s1指向字元串首地址
while ((*s != '?') && (*s != 0)) //字元不為結束符或者不為?,指向下一個字元
s++;
*s = 0; //將這個字元置為結束符
return s1;
};
(4)如何刪除c語言字元擴展閱讀:
C語言isupper()函數:判斷一個字元是否是大寫字母
C語言isspace()函數:判斷一個字元是否是空白符
C語言isprint()函數:判斷一個字元是否是可列印字元
C語言islower()函數:判斷一個字元是否是小寫字母
C語言ldexp()函數:返回x乘以2的exponent次方(次冪)的值
C語言ldiv()函數:求兩個數的商和余數(針對long類型)
C語言ceil()函數:求不小於x的最小整數(向上取整)
C語言floor()函數:求不大於x的最大整數(向下取整)
double atof(char *nptr) 將字元串nptr轉換成浮點數並返回這個浮點數
double atoi(char *nptr) 將字元串nptr轉換成整數並返回這個整數
❺ c語言中怎樣寫刪除字元串中某個字元的程序啊
c語言中書寫刪除字元串中某個字元的程序的具體操作步驟如下:
1、編寫頭函數,包括「#include <stdio.h>.」與「#include <string.h>.「。
❻ 怎樣刪除已經輸出的字元 (C語言)
依據輸出裝置而定.
字元輸出後,
已經儲存或顯示在輸出裝置內,
能否刪除,
依據輸出裝置的能力而定.
就顯示幕來說,
若支持ascii控制字元,
我們可以輸出"bs
控制字元",
來告知顯示幕刪除前一個已輸出的字元.
但若顯示幕不支持(或許是模式不同),
就無法刪除.
ascii的刪除控制字元為
0x08,
printf的格式化,
為"\b".
也可以上網查ascii確認.
❼ 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語言學習其實並不難,只要你有決心,夠努力,就會成功。想免費學習的可以加脫線下面得號!
❽ c語言程序中 從字元串s中刪除指定的字元c.
c語言從字元串s中刪除字元c:
#include<stdio.h>
/*從字元串S中刪除字元c*/
voidsqueeze(char[],char);
intmain()
#include<stdio.h>
gets(s);
printf("輸入需要刪除的指定字元ch:
");
ch=getchar();
for(i=j=0;s[i]!='