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

時間 2021-09-14 01:19:22

1樓:受災

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

希望能解決您的問題。

2樓:微俊

#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);}

3樓:匿名使用者

void delchar(char *s,char c)改為void delchar(char *s,char c)i++;

}strcpy(s,tmp_str);}

4樓:濮軒閉力

#include

#include

void

del(char

*s,charc)}

else}}

void

main(void)

;char

c;gets(s);

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

//getchar();

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

c=getchar();

//再讀取一個字元

del(s,c);

//執行刪除函式

puts(s);

//輸出字元至輸出流

system("pause");

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

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

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

5樓:兔丞飛

一、問題描述:從鍵盤輸入一個字串給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代替.

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

6樓:兔丞飛

一、問題描述:從鍵盤輸入一個字串給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代替.

7樓:深眠者

沒有特定的字元,但是可以通過**完成你想要的操作。

**如下:

#include

int main()

{char s[100],*p ,*q ;

puts("輸入小於100個字元:");

gets(s);

char del_x;

printf("輸入要刪除的字元:");

scanf("%c",&del_x);

for(p=s,q=s;*p!='\0';p++)

if(*p!=del_x)*q++=*p;

*q=*p;

puts(s);

擴充套件資料:

關鍵字關鍵字又稱為保留字,就是已被c語言本身使用,不能作其它用途使用的字。例如關鍵字不能用作變數名、函式名等識別符號。

基本資料型別

1.void:宣告函式無返回值或無引數,宣告無型別指標,顯示丟棄運算結果。(c89標準新增)

2.char:字元型型別資料,屬於整型資料的一種。(k&r時期引入)

3.int:整型資料,表示範圍通常為編譯器指定的記憶體位元組長。(k&r時期引入)

4.float:單精度浮點型資料,屬於浮點資料的一種。(k&r時期引入)

5.double:雙精度浮點型資料,屬於浮點資料的一種。(k&r時期引入)

6.bool:布林型(c99標準新增)

7.complex:複數的基本型別(c99標準新增)

8._imaginary:虛數,與複數基本型別相似,沒有實部的純虛數(c99標準新增)

9._generic:提供過載的介面入口(c11標準新增)

型別修飾關鍵字

1.short:修飾int,短整型資料,可省略被修飾的int。(k&r時期引入)

2.long:修飾int,長整型資料,可省略被修飾的int。(k&r時期引入)

3.long long:修飾int,超長整型資料,可省略被修飾的int。(c99標準新增)

4.signed:修飾整型資料,有符號資料型別。(c89標準新增)

5.unsigned:修飾整型資料,無符號資料型別。(k&r時期引入)

6.restrict:用於限定和約束指標,並表明指標是訪問一個資料物件的唯一且初始的方式。(c99標準新增)

複雜型別關鍵字

1.struct:結構體宣告。(k&r時期引入)

2.union:聯合體宣告。(k&r時期引入)

3.enum:列舉宣告。(c89標準新增)

4.typedef:宣告型別別名。(k&r時期引入)

5.sizeof:得到特定型別或特定型別變數的大小。(k&r時期引入)

6.inline:行內函數用於取代巨集定義,會在任何呼叫它的地方。(c99標準新增)

儲存級別關鍵字

1.auto:指定為自動變數,由編譯器自動分配及釋放。通常在棧上分配。與static相反。當變數未指定時預設為auto。(k&r時期引入)

2.static:指定為靜態變數,分配在靜態變數區,修飾函式時,指定函式作用域為檔案內部。(k&r時期引入)

3.register:指定為暫存器變數,建議編譯器將變數儲存到暫存器中使用,也可以修飾函式形參,建議編譯器通過暫存器而不是堆疊傳遞引數。(k&r時期引入)

4.extern:指定對應變數為外部變數,即標示變數或者函式的定義在別的檔案中,提示編譯器遇到此變數和函式時在其他模組中尋找其定義。(k&r時期引入)

5.const:指定變數不可被當前執行緒改變(但有可能被系統或其他執行緒改變)。(c89標準新增)

6.volatile:指定變數的值有可能會被系統或其他執行緒改變,強制編譯器每次從記憶體中取得該變數的值,阻止編譯器把該變數優化成暫存器變數。(c89標準新增)

流程控制關鍵字

跳轉結構

1.return:用在函式體中,返回特定值(如果是void型別,則不返回函式值)。(k&r時期引入)

3.break:跳出當前迴圈或switch結構。(k&r時期引入)

4.goto:無條件跳轉語句。(k&r時期引入)

分支結構

1.if:條件語句,後面不需要放分號。(k&r時期引入)

2.else:條件語句否定分支(與if連用)。(k&r時期引入)

3.switch:開關語句(多重分支語句)。(k&r時期引入)

4.case:開關語句中的分支標記,與switch連用。(k&r時期引入)

5.default:開關語句中的「其他」分支,可選。(k&r時期引入)

編譯#define 預編譯巨集

#if 表示式 #else if 表示式 #else #endif 條件編譯

#ifdef 巨集 #else #endif 條件編譯

#ifndef 巨集 #else #endif 條件編譯與條件編譯

8樓:搜虎哈哈

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

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

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

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

9樓:蝴蝶蘭

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

}*d = '\0';

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

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

加百列 一 問題描述 從鍵盤輸入一個字串給str和一個字元給c,刪除str中的所有字元c並輸出刪除後的字串str。1 輸入 第一行是一個字串 第二行是一個字元。2 輸出 刪除指定字元後的字串。二 設計思路 1 同插入問題,定義兩個字元陣列a,b。以及標誌刪除位置的int型pos。2 用gets函式輸...

c語言,字串,C語言中,字串是什麼?

c語言中,字串是什麼?位操作運算都只能是整形或字元型,字元型實際是單位元組整形。包括以下幾個操作符 按位與 按位或。按位異或。左移 右移 另外還有一個取餘操作 a b的意思是,a除以b,取餘數。這個是c語言的硬性規定,位操作都是正數按照二進位制進行表達的時候才有的概念 而取餘操作是整數相除得餘數,餘...

c語言反轉字串怎麼反轉,C語言反轉字串怎麼反轉?

讀取字串,瀏覽字串每一個字元,如果是空格就輸出空格,否則就儲存當前位置,從當前位置移動到下一個空格或字元尾前,從當前位置開始反向輸出,直達回到儲存的位置最後輸出回車,結束 以下是c語言版的,需要的話,可以看看 include include include define string maxsize...