C語言程式設計 在指定的符串中刪除指定的符,並輸出該字串

時間 2021-08-11 15:48:39

1樓:問明

#include

#include

int main(int argc, char **argv)int num = 0;

for (int i = 0; i <= strlen(argv[1]); i++)

if (argv[1][i] != argv[2][0])argv[1][num] = (i == strlen(argv[1])) ? '\0' : argv[1][i];

num++;

printf("%s\n", argv[1]);

return 0;

執行結果:

2樓:珈藍惜夢

源程式以及演算法註釋如下:#include

#include

int main()

;//定義刪除前的字串

char st[100] = ;//定義刪除後的字串q=st;//取出st字元陣列的首地址

p=str;//取出str字元陣列的首地址gets_s(str);//輸入字串

char a;//定義刪除字元變數

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

a = getchar();//輸入誰需要刪除的字元變數for(i=0;*(p+i)!='\0';i++)//迴圈遍歷,將非刪除字元的元素取出 }

printf("%s", st);//輸出刪除後字串return  0;

輸出結果如下:擴充套件資料:其他實現方法:

#include

#include

int main()

int j=0,i;

char str[20],c;

gets(str);

scanf("%c",&c);

for(i=0; str[i]!='\0'; i++)if(str[i]!=c)

str[j++]=str[i];

str[j]='\0';

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

return 0;}

3樓:

宣告一個字元陣列str存入輸入的字串,再宣告一個字元變數接收要刪除的字元。分別用i和j源字元陣列計數和目標字元陣列計數,然後開始對str進行自己向自己連同最後的'\0'逐字元複製;當遇到要刪除的字元時目標計數j暫停一次計數,這樣要刪除的字元就會被下一個非刪除字元覆蓋。最後就達到了刪除指定字元的目的。

//#include "stdafx.h"//if the vc++6.0, with this line.

#include "stdio.h"

int main(void)

4樓:手機使用者

用for迴圈中的continue功能吧,當遇到指定字元是直接跳過進入下一個迴圈,具體的我想你應該會寫吧,因為我手機寫程式設計的話比較麻煩,所以就不寫了…如果有其他人寫了的話樓主就把分給他吧…

5樓:灰姑娘的霸氣

#include #include char* delcharfromstring(char *str, int len, int pos); void main() char* delcharfromstring(char *str, int len, int pos) for(i=0; i= pos) tmp++; } *tmp = '\0'; return str;}

6樓:匿名使用者

樣例輸入

sdf$$$sdf$$

$樣例輸出

sdfsdf

是要這種效果吧

附上**

#include

int main()

}printf("\n");

return 0;}

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

7樓:兔丞飛

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

8樓:深眠者

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

**如下:

#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 條件編譯與條件編譯

9樓:搜虎哈哈

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

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

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

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

10樓:蝴蝶蘭

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語言程式設計 將指定位置的字元刪除

include include int main int i,j,k 0 char a 10 z g hg char b 10 for i 0 i 給你改好了,自己對比著看下 include include char delcharfromstring char str,int len,int po...

C語言程式設計的取餘,C語言程式設計中運算子 (求餘運算子)怎樣使用?

c語言的取餘運算是指兩個整數相除時,運算結果只取商的整數部分,並且沒有四捨五入。那個函式輸出結果是 30 7is2 c語言中要輸出百分號,在printf函式裡必須用兩個百分號做格式控制,因為百分號本身被用作格式控制前導符使用了,屬於編譯系統的保留字元,它已經不能代表它自己了,為了能輸出它,就做了這個...