C++
 Computer >> コンピューター >  >> プログラミング >> C++

C言語の文字演算とは?ASCIIコード変換の仕組みとサンプルコード

C言語における文字演算とは、文字に対して加算・減算などの算術演算を行う手法のことです。主に文字列を操作する際に活用されます。大きな特徴として、文字を算術演算に使用すると、その文字は自動的に対応する整数値(ASCIIコード)へと変換されて処理される点が挙げられます。

この性質を利用すると、「ある文字の次の文字」や「前の文字」などを簡単に求めることができます。以下は、C言語での文字演算の具体例です。

サンプルコード

#include <stdio.h>

int main(){
    char s = 'm';
    char t = 'z' - 'y';

    printf("%d\n", s);
    printf("%c\n", s);
    printf("%d\n", (s+1));
    printf("%c\n", (s+1));
    printf("%d\n", (s-1));
    printf("%c\n", (s-1));
    printf("%d\n", t);
    // printf("%c", t);

    return 0;
}

実行結果

109
m
110
n
108
l
1

コードの解説

  • char s = 'm';
    変数 s には文字 'm' が格納されています。ASCIIコードでは 'm'109 に相当します。
  • %d と %c の違い
    %d 指定子で出力すると整数値(109)が表示され、%c 指定子で出力すると元の文字(m)が表示されます。
  • (s+1) の計算
    s + 1109 + 1 = 110 となり、110 は文字 'n' に対応します。つまり「次の文字」が得られます。
  • (s-1) の計算
    同様に s - 1109 - 1 = 108 となり、これは文字 'l' を表します。「前の文字」が得られるわけです。
  • t = 'z' - 'y' の計算
    'z'(122)から 'y'(121)を引くため、結果は差分の 1 になります。このように文字同士の減算では、ASCIIコード上の距離(差分)を求められます。

なお、最後の行にある printf("%c", t); がコメントアウトされているのは、値 1 が印刷不可能な制御文字(SOH:ヘッディング開始)に対応しているためです。%c で出力しても画面には表示されないことに注意しましょう。

このようにC言語では、文字と整数が密接に結び付いているため、文字演算を使うことでアルファベットのシフト処理や文字コードの判定など、さまざまな場面で効率的なプログラムを書くことができます。

  1. HTML文字セット(charset)とは?文字エンコーディングの指定方法を解説

    HTML文字セット(charset)とは、Webページ上のテキストを正しく表示するために指定する文字エンコーディングのことです。代表的な文字セットには、ASCII、ANSI、ISO-8859-1、UTF-8などがあります。 主な文字セットの種類と特徴 ASCII:128種類の英数字や記号を定義した、最も基本的な文字セットです。 ISO-8859-1(Latin-1):256種類の文字コードをサポートし、西ヨーロッパ系言語の表示に対応しています。 UTF-8:世界中のほぼすべての文字を扱えるUnicodeベースのエンコーディングで、現在のWeb標準として最も広く使われています。 HTMLで文

  2. Pythonの算術演算子一覧|加算から切り捨て除算までの使い方と実行例

    Pythonには、四則演算をはじめとする数値計算を行うための算術演算子が標準で用意されています。本記事では、代表的な7種類の算術演算子について、それぞれの動作を一覧表とサンプルコードでわかりやすく解説します。 まず、変数aに10、変数bに20が代入されているものとして、各演算子の挙動を確認しましょう。 No.演算子と説明使用例 1+ 加算演算子の左辺と右辺の値を足し合わせます。a + b = 30 2- 減算左辺の値から右辺の値を引きます。a - b = -10 3* 乗算左辺と右辺の値を掛け合わせます。a * b = 200 4/ 除算左辺の値を右辺の値で割ります。b / a = 2