C++の文字列の文字のアルファベット値の合計
この問題では、文字列str[]の配列が与えられます。私たちのタスクは、配列内のすべての文字列のスコアを見つけることです。スコアは、文字列の位置と文字列の文字のアルファベット値の合計の積として定義されます。
問題を理解するために例を見てみましょう
入力
str[] = {“Learn”, “programming”, “tutorials”, “point” } sum = 12 + 5 + 1 + 18 + 14 = 50. Score = 50
「プログラミング」の位置−2→
sum = 16 + 18 + 15 + 7 + 18 + 1 + 13 + 13 + 9 + 14 + 7 = 131 Score = 262
「チュートリアル」の位置-1→
sum = 20 + 21 + 20 + 15 + 18 + 9 + 1 + 12 + 19 = 135 Score = 405
「点」の位置−1→
sum = 16 + 15 + 9 + 14 + 20 = 74 Score = 296
この問題を解決するための簡単なアプローチは、配列のすべての文字列を反復処理することです。文字列ごとに、位置を保存し、文字列のアルファベット値の合計を求めます。複数の位置と合計して製品を返します。
アルゴリズム
ステップ1 −文字列を繰り返し処理して位置を保存し、各文字列について手順2と3に従います-
ステップ2 −文字列のアルファベットの合計を計算します。
ステップ3 −位置と合計の積を印刷します。
例
上記のソリューションの動作を説明するプログラム
#include <iostream>
using namespace std;
int strScore(string str[], string s, int n, int index){
int score = 0;
for (int j = 0; j < s.length(); j++)
score += s[j] - 'a' + 1;
score *= index;
return score;
}
int main(){
string str[] = { "learn", "programming", "tutorials", "point" };
int n = sizeof(str) / sizeof(str[0]);
string s = str[0];
for(int i = 0; i<n; i++){
s = str[i];
cout<<"The score of string ' "<<str[i]<<" ' is "<<strScore(str, s, n, i+1)<<endl;
}
return 0;
} 出力
The score of string ' learn ' is 50 The score of string ' programming ' is 262 The score of string ' tutorials ' is 405 The score of string ' point ' is 296
-
sprintfに相当するC++とは何ですか?
sprint()関数は、CおよびC++内にも存在します。この関数は、文字列内に何かを格納するために使用されます。構文はprintf()関数に似ていますが、唯一の違いは、文字列を指定する必要があることです。 C ++でも、ostringstreamを使用して同じことができます。このostringstreamは、基本的に出力文字列ストリームです。これは、sstremヘッダーファイルにあります。これの使い方を見てみましょう。 例 #include<iostream> #include<sstream> using namespace std; int main() { &n
-
文字列の長さを見つけるC++プログラム
文字列は、ヌル文字で終了する1次元の文字配列です。文字列の長さは、ヌル文字の前の文字列の文字数です。 たとえば。 char str[] = “The sky is blue”; Number of characters in the above string = 15 文字列の長さを見つけるプログラムは次のとおりです。 例 #include<iostream> using namespace std; int main() { char str[] = "Apple"; int co