安全上の問題05.スペース(C ++)を置き換えることを証明するために[オファー]アルゴリズム

文字列s内の各スペースを置き換え、機能を実装してください「20%。」

[ 実施例1 ]

入力:S = "我々は満足しています。 "
出力: "我々は、%20アール%20happy。 "

[ リミット ]

長さが0 <= Sの<= 10000

 

[問題解決のアイデア]

クラス解決{
パブリック:
  文字列replaceSpace(文字列s){
    文字列s2;
      {(S自動C)のための
      IF(!S [I] =」「)
        S2 + = S [i]は、
      他
        S2 + = "%20";
    }
    S2を返します。
  }
}。

[ 注]

1. C ++の単一引用符と二重引用符の問題。

これは、単一引用符、二重引用符で囲まれた文字列がある
実際の整数を表し、引用符で単一の文字。
二重引用符で囲まれた文字列は、それは未知の開始文字の配列へのポインタの代表です。配列は、文字と追加の2進数の0「\ 0」の初期化の間に二重引用符です。

「」と「」の違いは、前者が文字である文字列です。
実際には「」「\ 0」、「\ 0」末端です。「」これだけでは、文字を表します。
文字列は、このような組み合わせは、複数の文字を表す「ABCDE」することができますが、「ABCDE」これは間違っています!

要約すると、通常は単一の文字列は、文字と組み合わせて、複数のキャラクタ〜

言葉遣い:(S自動C)で約2。

参照型は、元の値に変更してもよいことを除いてC11特殊フォーマット規格は、forループで実行することができます

-------------------------------------------------- ------------
オート:自動変数を宣言するために使用。これは、変数(ループ本体の変数宣言のために、例えば、)(オート)ローカルスコープを備え、レンジブロックの変数の宣言は、オートデフォルトのストレージタイプであることを、ストレージタイプ識別子です。実際には、最も一般的な宣言型の文変数は自動変数であり、彼らは明示的にautoキーワードを指定する必要はありません、デフォルトはautoです。自動変数は自動的に解除になっ範囲外である、メモリオーバーフローが(クラス以外のポインタが含まれている)は発生しません。自動変数を使用することの利点は、比較的安全で、解放された変数を行くかどうかを検討する必要はありません。
新しい:新しいキーワードは、アプリケーション・ヒープ・メモリ・アドレスに使用されている、彼は、変数を作成し、オペレーティングシステムによって解放されると自動的に削除手動で解除しない限り、解放する、またはプログラムを終了していない、新しいメモリ使用量を使用することの利点は、より柔軟です理論は任意のサイズのメモリブロックを申請することができます(実際のオペレーティングシステムに依存する)が、それは誤ってオブジェクトを解放するために忘れて、問題の傾向がある、オブジェクトは、それがメモリのオーバーフローを生成します解除し忘れて作成した関数の呼び出しで特に頻繁です、重大なプログラムエラー、システムクラッシュにつながります。新しいが、一般的に、クラス定義で使用され、クラスを削除することができます組み合わせはまた、新しいオブジェクトを格納する変数の機能が付属しています、したがって、2つのアプローチの利点を継承しています。
-------------------------------------------------- ------------
加えて、最新のC ++本来の意味に加えて、標準の自動更新機能キーは、だけでなく、他のタイプと同様の高レベル言語はを推論プロパティにautoを使用していない追加されます代わりに、変数の型で、前提を明示的に初期化変数の型を初期化され、あなたは、このような私は10を= intとしてキーワードautoを使用することができます。自動A = I; // これがために、このテンプレートクラスの一部を使用してint型でありますコードも有用である冗長な削減
-------------------------------------------------- -------------
別余談:自動タイプを、対応する代わりに、変数の新しいアウトを使用して、また静的変数
静的変数は、オブジェクトを解放し、プログラムの終了であるが、それはマニュアルを必要としませんリリース。
関数内で宣言されている場合場合は、静的、毎回それは、この関数を入力する、または変数の使用が最初に宣言され、また、使用された最後の値が保存されました。
あなたは静的変数やクラス構造、構造またはすべてのオブジェクトクラス定義を使用している場合、我々は独自の静的変数を共有します。
機能の終了時に解放された場合、自動変数、およびこの関数が再び呼び出され、新しい変数を再定義しています

 

おすすめ

転載: www.cnblogs.com/ziziQ/p/12509732.html