C語言 用字元陣列從鍵盤輸入字串,刪除字串中所有

2021-04-18 04:27:42 字數 6197 閱讀 4270

1樓:匿名使用者

1 遍歷字串;

2 對每個字元

判斷,如果不是字母,則刪除。

刪除可以通過後續字元前專移,覆蓋要刪

屬除字元的方式實現。

**如下:

int main()

s[j] = 0;

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

2樓:冰是沉默的水

|#include

#include

#include

int main()

str2[j]='\0';

printf("%s",str2);

getch();

}剛寫源

的-物聯bai

網校du企聯盟技zhi術部dao

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

3樓:兔丞飛

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

4樓:深眠者

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

**如下:

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

5樓:搜虎哈哈

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

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

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

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

6樓:蝴蝶蘭

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

}*d = '\0';

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

7樓:吉祥二進位制

#include

int main()

8樓:晴涵陀子

學習c語言當然就得讓他實現對應的作用,實現它的功能。那麼刪除字串中的指定字元在字串太多的情況下不可能人為的去刪除吧。那麼現在就給大家說一下怎麼用c語言設計程式讓它刪除字串中的指定字元。

9樓:兄弟連教育北京總校

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

string b = "abcabcabc";

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

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

10樓:

特定字元為a.

#include

#include

int main()

len--;}}

puts(str);

return 0;}

11樓:大_匆

#include

int main()

return 0;

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

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

12樓:匿名使用者

對了你要用什麼做? 陣列還是連結串列?

13樓:匿名使用者

#include

char fun(char str[20],char ch)

}void main()

14樓:匿名使用者

#include "stdio.h"

#define max 50

char tm[max];

char* fun(char *ch)

ch++;

}return tm;

}void main()

c語言問題:先從鍵盤輸入一個字串存放在字元陣列a中,再將a元素的所有小寫字母存放到字元陣列b中

15樓:匿名使用者

#include

#include

void main()

i++ ;

} puts(b);

} strcpy的結果

每次都把a的值拷貝到b裡,結果是b和a一樣或b是空字串

16樓:希聲和寡

strcpy(b,a);

這一句是將以a打頭,以'\0'結尾的字串拷貝到b中,當然得不到正確結果

這麼改:

#include

#include

void main()

puts(b);}

17樓:

i++;你少了一個分號

c語言程式設計 編寫程式,從鍵盤輸入一個字串放在字元陣列a中,用選擇法將a中的有效字元按降序排列

18樓:匿名使用者

#include

#include

#include

void inorder(char array, int n );

int main(int argc, char *argv)} } }

在dev c++中編寫可用,temp陣列只是暫時存放輸入字串的,它的大小可根據你實際需要調大調小。

19樓:匿名使用者

void choise(int *a,int n)}}

20樓:匿名使用者

我用c#的,給你一個思路,我懶得寫了。

1、將字串分離到字元陣列裡

2、判斷字元是不是有效

3、將有效字元另存

4、將另存的陣列迴圈排列

5、合併成字串

在c語言中如何實現用鍵盤輸入一個字串,並列印出來?

21樓:搜虎哈哈

在c語言中輸入字串後然後列印出來的程式設計方法如下:

1.首先需要先定義一個存放字串內的陣列空容間,如給字串100個陣列空間。

2.接著使用gets()函式來獲取鍵盤輸入的字串。一般格式為gets(定義的字元陣列名)。

3.然後再使用puts()函式來輸出之前輸入的字串內容。一般格式puts(定義的字元陣列名)。

4.最終執行程式,即可成功實現輸入字串,然後原樣在螢幕中輸出字串。

c語言程式設計題 從鍵盤輸入字元,輸出與該字元前後相鄰的兩個

char ch scanf c ch printf c c n char ch 1 char ch 1 printf d d n ch 1 ch 1 include int main void 編寫程式輸入一個字元ch然後輸出與它前後相鄰的兩個字元 你的問題不太明白,是輸入任意一個字元,輸出其asc...

C語言程式設計從鍵盤輸入字串,將其中所有的數字字元抽出,按原順序組成新串並輸出

include stdio.h int main void include stdafx.h if the vc 6.0,with this line.include stdio.h int main void include int main s i 0 printf s n s return 0...

C語言從鍵盤輸入字串,將其中是英文字母的就輸出,並且大寫輸出,否則不輸出

char chr int i for i 0 i 20 i 大致是這麼個意思,你試試,這個是輸入20個字元,你的原題也內沒說要容輸入多少 include include define max 100 int main p return 0 include void main c語言 從鍵盤輸入一個字...