C++での文字列に関する練習用の質問
文字列はプログラミングの重要な部分です。文字列は文字タイプの配列です。 GATEのような競争試験でもそれは重要なトピックです。それでは、文字列に関するいくつかの重要なポイントについて説明してから、文字列に関する概念を明確にするのに役立ついくつかの質問に進みましょう。
プログラミング言語の文字列は、2つの異なる方法で保存できます。それらは文字配列(char str [size])を使用し、文字列を指すポインター(char * ch =“ Hello”)を使用しています。文字配列と文字列へのポインタの使用に関連するいくつかの重要なことがあります。彼らは
- 文字列のサイズを見つけるには、文字列の文字配列インスタンスをsizeofメソッド(つまりsizeof(str))に渡す必要があります。
- 文字列の終わりはヌル文字、つまり「\0」でマークされます。
- strlen()と呼ばれる文字列の長さを見つけるメソッドがあります 。
- 文字列を変更する、つまり文字列の文字を変更するには、char配列を使用しますが、ポインタを使用して文字列の1文字にアクセスすることはできません。
練習用の質問をいくつか見てみましょう
の出力を予測します
例
char name[] = "TutorialsPoint"; char *ptr = name; cout<<++ptr;
出力
utorialsPoint
ポインタの値が1つ増えるため、インデックス1から印刷が開始されます。
char name[] = "TutorialsPoint"; int length = strlen(name); for(int i=length;i>1;i--) printf("%c", name[i]);
出力
tniopslairot
長さから1までの文字列の逆印刷。
char c[] = "LearnProgrammingAtTutorialsPoint"; char *p =c; printf("%s", p + c[1] - c[2]+1) ;
出力
ProgrammingAtTutorialsPoint
ここでは、文字列へのポインタを作成し、文字列の残りの部分を出力するインデックスによってポインタの値を増やしています。
-
C++の最小文字列
同じ長さの2つの文字列sとtがあり、両方とも小文字であるとします。最初にsを任意の順序に再配置してから、sをtに変換するために必要な変更の最小数を数えることを検討してください。 したがって、入力がs =eccynue、t =scienceの場合、出力は「eccynue」を「yccence」に再配置したかのように2になり、yをsに置き換えます。 2番目のcはiで、「科学」になります。 これを解決するには、次の手順に従います- ret:=0 sの頻度を保持する2つの配列cnt1とtの頻度を保持するcnt2を定義します 初期化i:=0の場合、i <26の場合、更新(iを1増やしま
-
C++で2つのバイナリ文字列を追加するプログラム
2進数の文字列が2つある場合、それら2つの2進数文字列を加算して得られた結果を見つけ、その結果を2進数文字列として返す必要があります。 2進数は、0または1のいずれかで表される数値です。2つの2進数を加算する際には、2進数の加算規則があります。 0+0 → 0 0+1 → 1 1+0 → 1 1+1 → 0, carry 1 入力 str1 = {“11”}, str2 = {“1”} 出力 “100” 入力 str1 = {“110”},