文字列内の各文字のASCII値の平均を求める方法
本記事では、与えられた文字列に含まれる各文字のASCII値の平均を計算する方法を解説します。例として、文字列が「ABC」である場合を考えてみましょう。各文字のASCII値はそれぞれ65(A)、66(B)、67(C)となるため、これら3つの値の平均は66になります。
アルゴリズム
asciiAverage(String)
Begin
sum := 0
for each character c in String, do
sum := sum + ASCII of c
done
return sum/length of String
End実装例(C++)
以下は、上記のアルゴリズムをC++で実装したサンプルコードです。文字列を受け取り、各文字のASCII値を合計した後、文字数で割ることで平均値を算出しています。
#include<iostream>
using namespace std;
float asciiAverage(string str){
int sum = 0;
for(int i = 0; i<str.size(); i++){
sum += int(str[i]);
}
return sum/str.size();
}
main() {
string str;
cout << "Enter a string: ";
cin >> str;
cout << "ASCII average is: " << asciiAverage(str);
}実行結果
Enter a string: Hello ASCII average is: 100
コードのポイント
- 各文字を
int(str[i])でキャストすることにより、ASCII値(整数値)を取得できます。 - 合計値を文字列の長さ
str.size()で除算することで平均を求めます。 - 戻り値の型が
floatの場合でも、整数同士の除算では小数点以下が切り捨てられる点に注意してください。より正確な結果が必要な場合は、static_cast<float>(sum) / str.size()のように明示的なキャストを行うとよいでしょう。
-
Pythonのmap関数と辞書を活用して各単語のASCII値の合計を計算する方法
この記事では、map関数と辞書(dict)を組み合わせて、文中の各単語ごとのASCII値の合計、および文全体の合計を計算する方法を解説します。例として、次のような文を考えてみましょう。hi people of the worldこの場合、各単語に対応するASCII値の合計は次のようになります。209 645 213 321 552そして、これらをすべて足した文全体の合計は 1940 となります。処理の流れ基本的な考え方は以下の通りです。map関数とord関数を使って、単語内の各文字のASCII値を取得します。sum関数でそれらの値を合計し、単語ごとのASCII値の合計を求めます。この処理を文内
-
Rubyで学ぶ文字列エンコーディング入門:ASCIIとUnicodeの仕組みを徹底解説
コンピュータが理解できるのは「0」と「1」だけ。そんなデジタルの世界で、いったいどうやって文字列は存在しているのでしょうか? 答えはシンプルです。 ドメイン名をIPアドレスに対応付けられるように。 バーコードを特定の商品に対応付けられるように。 私たちは… 数字を文字に対応付けることができるのです! 例えば、97 を a に。 122 を z に。 まさにこの仕組みによって、数字だけの世界に文字が生まれます。 では、どの数字がどの文字に対応しているのでしょうか? この問いに答えるために、人類はさまざまな文字マッピングシステム(文字エンコーディング)を考案してきました。 その始まりがASCIIで