演習8-6文字の削除(20ポイント)
この質問では、文字列内の指定された文字を削除する単純な関数を実装する必要があります。
関数インターフェイスの定義:
void delchar( char *str, char c );
その中にchar *str
は、c
削除される文字である着信文字列があります。関数delchar
の機能はstr
、c
文字列に現れるすべての文字を削除することです。
審判員のテスト手順の例:
#include <stdio.h>
#define MAXN 20
void delchar( char *str, char c );
void ReadString( char s[] ); /* 由裁判实现,略去不表 */
int main()
{
char str[MAXN], c;
scanf("%c\n", &c);
ReadString(str);
delchar(str, c);
printf("%s\n", str);
return 0;
}
/* 你的代码将被嵌在这里 */
入力サンプル:
a
happy new year
出力例:
hppy new yer
// 1。質問がある場合は、メッセージを残して指摘してください、ありがとうございます!!!
// 2。より良いアイデアがある場合は、メッセージを残すこともできます。ありがとうございます!!!
void delchar(char * str、char c)
{int n、i、j;
n = strlen(str); strlen()は、終了文字 "\ 0"を含まない、指定された文字列strの長さを計算するために使用されます。
for(i = n-1; i> = 0; i--)
{ if(str [i] == c) {j = i; while(j <n) { str [j] = str [j + 1 ]; j ++; } } } }