【C言語】scanfで日本語入力する方法

この記事では、C言語で日本語の入力を行う方法について解説します。

また、日本語の文字列を扱う際に注意すべき配列の長さについても説明します。

目次から探す

日本語入力する方法

C言語では、scanf関数を使用して日本語の入力を行うことができます。

scanf関数は、指定したフォーマットに従って入力を受け取る関数です。

scanf関数を使った日本語入力の例

以下の例では、scanf関数を使用して日本語の文字列を入力し、その後に入力された文字列を表示するプログラムを示します。

#include <stdio.h>
int main() {
    char name[100]; // 入力された文字列を格納するための配列
    printf("名前を入力してください:");
    scanf("%s", name); // %sは文字列を受け取るフォーマット指定子
    printf("入力された名前は:%s\n", name);
    return 0;
}

上記のプログラムを実行すると、以下のようになります。

名前を入力してください:山田太郎
入力された名前は:山田太郎

配列の長さに注意

日本語はマルチバイト文字を使用するため、1文字で2バイト以上のメモリを使用します。

そのため、scanf関数を使用して日本語の文字列を入力する際には、配列の長さに注意する必要があります。

例えば、上記のプログラムでは、nameという配列を100文字分確保しています。

しかし、入力される名前が100文字を超える場合、バッファオーバーフローが発生し、予期しない動作やプログラムのクラッシュが発生する可能性があります。

そのため、実際に入力される文字列の長さを考慮して、適切な配列の長さを設定する必要があります。

目次から探す