関数remove_duplicated_characters マニュアル

(The documentation of function remove_duplicated_characters)

Last Update: 2023/2/21


◆機能・用途(Purpose)

文字列から連続して複数回登場する文字を削除する。
Remove characters that continuously appear twice or more from a string.


◆形式(Format)

#include <mystring.h>
inline char ∗remove_duplicated_characters
(const char ∗string_original,const char ∗characters, const char ∗mode)


◆引数(Arguments)

string_original 元々の文字列。
The originial string.
characters 除去したい文字を列挙した配列。
An array composed of the characters to remove.
mode
  • "and"
    引数charactersに列挙された文字の中で 特定の1つの文字が連続して登場する箇所のみを処理対象にする。
    Modify the string only when the same character in argument characters appears continuously.

  • "or_first"
    引数charactersに列挙されたいずれかの文字が連続して登場する箇所を 処理対象にする。最初の1文字を残す。
    Modify the string when either characters in argument characters continuously appear; remain the first character.

  • "or_last"
    引数charactersに列挙されたいずれかの文字が連続して登場する箇所を 処理対象にする。最後の1文字を残す。
    Modify the string when either characters in argument characters continuously appear; remain the last character.



◆戻り値(Return value)

引数string_originalが表す文字列から 引数charactersの配列要素のいずれかが複数回連続して登場する部分を 1回に絞った文字列。
A string created by removing characters in argument characters that continuously apper twice or more from a string expressed by argument string_original.


◆使用例(Example)

char original[]="a\t\tb\n\n\nc\t\nd\n\te"

char ∗modified1=remove_duplicated_characters (original,"\t\n","and");

char ∗modified2=remove_duplicated_characters (original,"\t\n","or_first");

char ∗modified3=remove_duplicated_characters (original,"\t\n","or_last");

1つ目の例では 「\t」が複数連続する箇所 (\t\t\t\t\tなど)、 「\n」が複数連続する箇所 (\n\n\n\n\nなど)の処理が行われ、 modified1="a\tb\nc\t\nd\n\te" となる。
In the 1st example, duplicated “\t” (i.e., \t\t, \t\t\t, …) and duplicated “\n” (i.e., \n\n, \n\n\n, …) are removed, resulting in modified1="a\tb\nc\t\nd\n\te".

2つ目の例では 「\t\n」や 「\n\t」など 「\t」と「\n」が 混ざって連続する箇所も処理対象になる。 これらの箇所では最初の1文字を残すので modified2="a\tb\nc\td\ne" となる。
In the 2nd example, mixed “\t” and “\n” are also processed; examples are “\t\n” and “\n\t”. The first character is remained at these places, resulting in modified2="a\tb\nc\td\ne".

3つ目の例は2つ目の例に似ているが、最後の1文字を残すので modified3="a\tb\nc\nd\te" となる。
The 3rd example is similar to the 2nd one; however, the last character is remained instead of the first one, resulting in modified3="a\tb\nc\nd\te".