PTA浙江大学版「C言語プログラミング(第3版)」問題セット演習8-6文字の削除(20ポイント)

                              

演習8-6文字の削除(20ポイント)

この質問では、文字列内の指定された文字を削除する単純な関数を実装する必要があります。

関数インターフェイスの定義:

void delchar( char *str, char c );

その中にchar *strは、c削除される文字である着信文字列があります。関数delcharの機能はstrc文字列に現れるすべての文字削除することです。

審判員のテスト手順の例:

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









おすすめ

転載: blog.csdn.net/L_Z_jay/article/details/106267385