c語言刪除字串中指定字元,C語言刪除字串中指定字元

時間 2021-08-30 09:45:20

1樓:加百列

一、問題描述:從鍵盤輸入一個字串給str和一個字元給c,刪除str中的所有字元c並輸出刪除後的字串str。

1、輸入:第一行是一個字串; 第二行是一個字元。

2、輸出:刪除指定字元後的字串。

二、設計思路:

1、 同插入問題,定義兩個字元陣列a,b。以及標誌刪除位置的int型pos。

2、用gets函式輸入陣列a的值,並利用for迴圈將陣列a copy到 陣列b。

3、利用for迴圈,令pos位的陣列b元素賦值到a。

三、實現**如下:

四、編譯並執行,執行結果如下:

2樓:搜虎哈哈

利用c語言刪除字串中所有指定的字元方法如下:

1.基本方法是,編寫函式fun:deletechar()。

這個函式需要接受兩個引數的傳入,一個為該字串str,另一個為想刪除的字元c。通過對整個字串的逐個遍歷,凡是檢測到字元為c,則刪除此字元。具體實現**如下:

2.在主函式,只需要接受使用者輸入的字串,然後呼叫deletechar()函式,最後輸出結果即可。主函式**實現部分如下:

3樓:匿名使用者

字串其實是一個陣列。你把後面的abcd依次移到****位置上。然後讓字串結束就好了。

符串或串(string)是由零個或多個字元組成的有限序列。一般記為 s='a1a2???an'(n>=0)。它是程式語言中表示文字的資料型別。

通常以串的整體作為操作物件,如:在串中查詢某個子串、求取一個子串、在串的某個位置上插入一個子串以及刪除一個子串等。兩個字串相等的充要條件是:

長度相等,並且各個對應位置上的字元都相等。設p、q是兩個串,求q在p中首次出現的位置的運算叫做模式匹配。串的兩種最基本的儲存方式是順序儲存方式和連結儲存方式。

[編輯本段]字串函式

1. 連線運算 concat(s1,s2,s3…sn) 相當於s1+s2+s3+…+sn.

例:concat(‘11’,'aa’)='11aa’;

2. 求子串。 copy(s,i,l) 從字串s中擷取第i個字元開始後的長度為l的子串。

例:copy(‘abdag’,2,3)=’bda’

3. 刪除子串。過程 delete(s,i,l) 從字串s中刪除第i個字元開始後的長度為l的子串。

例:s:=’abcde’;delete(s,2,3);結果s:=’ae’

4. 插入子串。 過程insert(s1,s2,i) 把s1插入到s2的第i個位置

例:s:=abc;insert(‘12’,s,2);結果s:=’a12bc’

5. 求字串長度 length(s) 例:length(‘12abc’)=5

在asp中 求字串長度用 len(s)例: len("abc12")=5

6. 搜尋子串的位置 pos(s1,s2) 如果s1是s2的子串 ,則返回s1的第一個字元在s2中的位置,若不是子串,則返回0.

例:pos(‘ab’,’12abcd’)=3

7. 字元的大寫轉換。upcase(ch) 求字元ch的大寫體。

例:upcase(‘a’)=’a’

8. 數值轉換為數串。 過程 str(x,s) 把數值x化為數串s.

例:str(12345,s); 結果s=’12345’

9. 數串轉換為數值。 過程val(s,x,i) 把數串s轉化為數值x,如果成功則i=0,不成功則i為無效字元的序數

例:val(‘1234’,x,i);結果 x:=1234

4樓:蝴蝶蘭

void delchar(char *str, char del)++str;

}*d = '\0';

}c語言是一門通用計算機程式語言,應用廣泛。c語言的設計目標是提供一種能以簡易的方式編譯、處理低階儲存器、產生少量的機器碼以及不需要任何執行環境支援便能執行的程式語言。

5樓:匿名使用者

/*** 替換str字串中第 ind 個字串 rep,返回結果* @param str 需要處理的字串* @param ind 替換第幾個

* @param rep 替換字串

* @return

*/public string replacebyindex(string str, int ind, string rep)else

}return result;

}//測試方法

int ind = 1;//去掉第ind個string rep = "a";//去掉什麼字串string str = "abcabcabcabc";

string result = replacebyindex(str, ind, rep);

6樓:吉祥二進位制

#include

int main()

7樓:匿名使用者

#include

void del_chr( char *s, char ch )*t='\0'; //置目標串結束符。

}void main()

8樓:匿名使用者

char * fun(char * s)

main函式直接呼叫這個函式就可以了。

9樓:微俊

#include

#include

int main()

s[i]='\0';

printf("input a character: ");

c = getchar();

delchar(s,c);

printf("after deleted, the string is:");

printf("%s\n",s);

return 0;

}void delchar(char *s,char c)tmp[j] = 0;

strcpy(s, tmp);}

10樓:匿名使用者

#include

#include

void del(char *s,char c)

}else}}

void main(void)

;char c;

gets(s); //從輸入流讀取一行,直至遇到換行符,windows回車鍵盤包含換行:\r\n

//getchar(); //從輸入流讀取一個字元,把這行註釋掉

c=getchar(); //再讀取一個字元

del(s,c); //執行刪除函式

puts(s); //輸出字元至輸出流

system("pause");

/*按照你寫的,你可以試試輸入一個行字串,回車一次,再回車一次,再輸入刪除字元*/

/*gets的作用是從輸入流讀取一行資料直到遇到換行符,所以你第一次回車是gets函式讀取的*/

/*第二次回車,是getchar()讀取的,再輸入一個字元才是你讀取的欲刪除的字元*/}

11樓:匿名使用者

#include"stdio.h"#include"string.h"voidmain()printf("\n");}

12樓:明槐宸

直接使用空字串替換就可以了

string b = "abcabcabc";

b=b.replace("b","");

這個應該是比較簡單的了,別的比如取出來你想要刪掉的字元的位置,然後去除

13樓:匿名使用者

public class test7

public static string deleteassignchar(string str, int on, char c)}}

return str;}}

第一個引數是要刪除字元的字串,第二個引數字元所在字串中的第幾個,第三個引數要刪除的字元.希望對你有幫助

14樓:受災

這個容易,就是把指定位置的字元去掉,也就是說後面的字元覆蓋比如刪除指定的字元在字串中第一個出現的位置void strdel( char* str, char ch )if( *p )}}

希望能解決您的問題。

15樓:大_匆

#include

int main()

return 0;

}void delete(char *s, char l, int n)

*(s+n--)='\0';}}}

16樓:

想了一個比較簡單的方法,程式也簡單,要多看,多想想為什麼,認真把課本的例題消化了,就發現很簡單的啦!少年,要加油哦!!!

#include

void main()

17樓:

他那樣是對的

當i!=n時會執行裡面的語句

當i==n時會跳過裡面的語句進行下一次迴圈!

因為陣列最好是連續存放好一點!!

所以中間有字元刪除後面的就要移位上來!!

它的問題在於沒有b[i]=a[j]應該是b[j]=a[i],可以去試試

不知道這樣說樓主明白沒?

18樓:匿名使用者

#include

int main

char * fun(char * s);

19樓:匿名使用者

題主的註釋是正確的。

首先,p q都指向s指向的陣列。你可以完全把p q當成s一樣的東西,只不過*q *p是可以變化的。

p作為迴圈判斷,只要p不空就繼續迴圈。p不為要刪除的字元,就將p目前指向的字元賦值到q。

如:s: 12345

del_x: 3

首先,q[0] = p[0] = 1; q++;其實是s[0] = s[0]

然後q[1] = 2; q++;s[1] = s[1],其實在遇到要刪除的字元前賦值並沒有意義,只需要q++就行

q[2] = 4,從這裡開始,因為已經刪除了3,所以q必須開始變化,所以需要使用q[2] = p[3],就是s[2] = s[3]

最後迴圈結束的q:12455,而*p = '\0',所以把q最後一位賦值成\0。

20樓:匿名使用者

string s = "abcabcabc";//你的串s=s.replace("", "-"); //每個字元加個-string b=s.split("-");//擷取字串為陣列string n="";//新的字元傳

int f=0;//b的迴圈變數

int y=0;//c的迴圈變數

for(int i = 0;i

}system.out.println(n);

c語言-刪除字串中指定的字元

21樓:兔丞飛

一、問題描述:從鍵盤輸入一個字串給str和一個字元給c,刪除str中的所有字元c並輸出刪除後的字串str。

1、輸入:第一行是一個字串; 第二行是一個字元。

2、輸出:刪除指定字元後的字串。

二、設計思路:

1、 同插入問題,定義兩個字元陣列a,b。以及標誌刪除位置的int型pos。

2、用gets函式輸入陣列a的值,並利用for迴圈將陣列a copy到 陣列b。

3、利用for迴圈,令pos位的陣列b元素賦值到a。

三、實現**如下:

四、編譯並執行,執行結果如下:

擴充套件資料

gets()函式用來從標準輸入裝置(鍵盤)讀取字串直到換行符結束,但換行符會被丟棄,然後在末尾新增'\0'字元。其呼叫格式為:gets(s),其中s為字串變數(字串陣列名或字串指標)。

gets()函式讀取到\n(我們輸入的回車)於是停止讀取,但是它不會把\n包含到字串裡面去。然而,和它配合使用的puts函式,卻在輸出字串的時候自動換行。

gets(s) 函式中的變數s為一字串指標。如果為單個字元指標,編譯連線不會有錯誤,但執行後記憶體溢位錯誤。寬字元版本,當使用unicode寬字元文字時,使用這個函式 _getws();在c11標準中被刪除,可用c標準庫中的fgets代替.

python刪除字串中指定位置字元

最愛塵涑 字串的話,你可以把他當作列表處理 str hello world 如果是想去掉第乙個字母 o 並且知道是第5個字元,index 41.使用分片 new str str 4 str 5 2.迴圈讀取new str join str i for i in range len str if i ...

c語言中字串連線怎麼解決,C語言中字串連線怎麼解決??

大野瘦子 include char a 10 123 char b 10 abc char c 20 strcpy c,a 把串a複製到有足夠空間的c中strcat c,b 把b連線到c的串尾需要注意的事項 c的長度一定要能夠容納要轉換的數字的長度,比如下面的例子,c的長度至少為8 1234567 ...

C中怎樣從指定字串中查詢並替換字串

stringtxt asdjsfk aaaaaaaaa 判斷這個字串中包含替換 就在斜槓前面加上字元 x 1 使用if語句 if txt.contains 2 使用條件運算子 txt txt.contains txt.replace x txt 擴充套件資料stringreplace 替換的目標,替...