-
【C言語】getc・getchar・getch・getcheの違いを徹底解説!文字入力関数の使い分けまとめ
C言語には、キーボードや入力ストリームから1文字を読み取るための関数が複数用意されています。getc()、getchar()、getch()、getche()はいずれも入力から1文字を読み込み、その結果を整数値(int型)として返します。読み取りに失敗した場合や入力の終端に達した場合には、EOFが返されます。 ただし、この4つの関数は「どこから読み込むか」「標準規格に含まれるか」「入力文字を画面に表示するか(エコーバック)」「Enterキーの入力を待つか」といった点で大きく異なります。以下、順番に詳しく見ていきましょう。 getc()とは getc()は、指定した入力ストリームから1文字を読み
-
【C言語・C++入門】strcpy()関数の使い方を徹底解説
strcpy() 関数は標準ライブラリ関数の一つで、ある文字列を別の文字列へコピーするために使用されます。C言語では string.h ヘッダーファイル、C++では cstring ヘッダーファイルに宣言されており、戻り値としてコピー先(dest)へのポインタを返します。strcpy() の構文C言語における strcpy() の構文は以下の通りです。char* strcpy(char* dest, const char* src);strcpy() のポイントコピー元の文字列全体をコピー先の文字列へコピーします。末尾への追加(連結)ではなく、既存の内容を丸ごと上書き(置き換え)する点に注意し
-
C/C++のstrcmp()関数の使い方と戻り値を徹底解説
strcmp()関数とはstrcmp()関数は、C言語の標準ライブラリに含まれる組み込み関数で、「string.h」ヘッダーファイルで宣言されています。この関数は、2つの文字列を引数として受け取り、それらを比較するために使用されます。strcmp()は文字列を辞書順(レキシコグラフィカル順)で比較します。つまり、両方の文字列を先頭から1文字ずつ比較していきます。比較は文字列の最初の文字から始まり、両方の文字が等しい間、またはNULL文字(\0)が見つかるまで続けられます。両方の文字列の最初の文字が等しい場合は、次に2番目の文字を比較し、以降も同様に処理が続けられます。このプロセスは、NULL文
-
C言語におけるfloatとdoubleの違いを徹底解説
C言語で小数を扱う際に使われる代表的なデータ型が「float」と「double」です。どちらも浮動小数点数を表現するための型ですが、メモリサイズや精度が異なります。本記事では、それぞれの特徴と使い方をサンプルコード付きでわかりやすく解説します。 float(単精度浮動小数点型)とは floatは浮動小数点数を表現するためのデータ型で、32ビットのIEEE 754単精度浮動小数点数として実装されています。内部構成は以下の通りです。 符号部:1ビット 指数部:8ビット 仮数部:23ビット floatの精度は10進数で約6桁です。そのため、より高い精度が必要な計算には後述のdoubleを使うのが
-
C/C++のgoto文とは?構文と使い方を実例付きで解説
goto文はC/C++におけるジャンプ文の一種で、同じ関数内のある文から別の文へ処理を直接移動させるために使用します。ただし、goto文の使用は強く非推奨とされています。その理由は、プログラムの構造が複雑になり、制御の流れを追跡しにくくなるだけでなく、後の修正や保守も困難になるためです。goto文の構文C言語におけるgoto文の基本構文は以下の通りです。goto label; . . . label: statement;「label」には任意のラベル名を指定します。ジャンプ先となる文の前に「label:」という形式でラベルを記述しておくことで、goto文が実行された時点でその位置へ処理が移動
-
C/C++のcontinue文とは?使い方と動作を実例で解説
continue文とは continue文は、ループ処理を制御するための文(ループ制御文)の一つです。break文がループ自体を強制終了させるのとは対照的に、continue文は現在の周回における残りの処理をスキップし、次の反復(イテレーション)へ処理を強制的に進める役割を持ちます。 つまり、特定の条件に該当した場合だけ処理を飛ばしたいときに、continue文は非常に便利です。 continue文の構文 C言語におけるcontinue文の基本的な構文は以下のとおりです。セミコロンを付けて記述します。 continue; continue文の使用例 次に、C言語でcontinue文を使用した実
-
C/C++のbreak文とは?ループを終了させる使い方を解説
break文は、ループ制御を行うための文のひとつです。主にループ処理を途中で強制的に終了させたい場合に使用されます。プログラムの実行中にbreak文に到達すると、その時点でループは即座に中断され、ループの直後にある次の文から処理が続行されます。また、break文はswitch文でも利用され、該当するcaseブロックの処理を終えてswitch文全体を抜け出す役割を担います。break文の構文C言語におけるbreak文の構文は非常にシンプルです。break;break文は単独で記述でき、通常はif文などと組み合わせて「特定の条件を満たしたときにループを抜ける」という制御を実現します。break文の
-
C言語におけるforループとwhileループの比較
forループとは forループは反復制御構造の一つで、指定した回数だけ文を繰り返し実行します。まず初期値を設定して繰り返しの開始点を決め、次に条件式が真(true)か偽(false)かを判定し、最後にインクリメント/デクリメントによってループ変数を更新します。 C言語におけるforループの基本構文は以下の通りです。 for ( 初期化; 条件式; 増減式 ) { 文; } 以下はC言語でforループを使用したサンプルコードです。 サンプルコード #include <stdio.h> int main () {  
-
C言語で文字列を大文字に変換する方法を解説
C言語で文字列を大文字に変換するプログラムを以下に示します。このプログラムでは、ユーザーが入力した文字列を1文字ずつチェックし、小文字のアルファベットを大文字に変換します。サンプルコード#include <stdio.h> #include <string.h> int main() { char s[100]; int i; printf(\nEnter a string : ); gets(s); for (i = 0; s[i]!=\0; i++) { if(s[i] >= a && s
-
C言語の配列とは?宣言・初期化の基本をサンプルコードで解説
配列(Array)とは、同じ型の要素を連続したメモリ領域に格納したデータの集まりです。メモリ上の最も低いアドレスが先頭の要素に対応し、最も高いアドレスが末尾の要素に対応します。 配列のインデックス(添字)は0から始まり、配列サイズから1を引いた値(配列サイズ - 1)で終わります。また、配列のサイズは0より大きい整数でなければなりません。 配列のインデックスの例 具体的に例を見てみましょう。 配列サイズ = 10 の場合 配列の先頭インデックス = 0 配列の末尾インデックス = 配列サイズ - 1 = 10 - 1 = 9 C言語における配列の宣言 C言語で配列を宣言する構文は以下の通りで
-
C言語における文字列の基礎と主な文字列操作関数を解説
C言語において、文字列(String)とは文字の配列であり、必ずヌル文字(\0)で終端されるという特徴があります。このヌル文字はプログラマが手動で配置する必要はなく、コンパイラが自動的に文字列の末尾に付加してくれます。 ここで重要なのが「配列」と「文字列」の違いです。通常の配列では、コンパイラは末尾にヌル文字を配置しません。一方、文字列として扱う場合は、コンパイラが自動的にヌル文字を末尾に追加します。これにより、文字列の終わりを正しく認識できるようになっています。 C言語における文字列の宣言方法 C言語で文字列を宣言する際の基本構文は以下の通りです。 char myStr[size]; 各
-
C/C++で列挙型(enum)を使う方法をわかりやすく解説
列挙型(Enumeration)とは、C言語におけるユーザー定義のデータ型の一つです。整数定数に意味のある名前を割り当てるために使用され、これによりプログラムの可読性と保守性が大きく向上します。列挙型を宣言するには、「enum」というキーワードを使用します。 enumの基本構文 C言語におけるenumの基本的な構文は以下の通りです。 enum enum_name{const1, const2, ....... }; 波括弧内に列挙する定数名をカンマで区切って記述します。最後の定数の後にセミコロン(;)を忘れずに付けましょう。 enum型変数の定義方法 enumキーワードは、列挙型そのものの宣言
-
C/C++のiswlower()関数とは?ワイド文字が小文字かどうかを判定する方法
iswlower()関数とはiswlower()関数は、C/C++に標準で組み込まれているライブラリ関数の一つです。指定されたワイド文字が小文字かどうかを判定するために使用されます。この関数は、C++では「cwctype」ヘッダーファイル、C言語では「ctype.h」ヘッダーファイル内で宣言されています。引数としてワイド文字を1つ受け取り、その文字が小文字であるかどうかに応じて以下の値を返します。小文字の場合:0以外の値(真)を返す小文字でない場合:0(偽)を返すなお、大文字や数字、記号などはすべて「小文字ではない」と判定され、0が返される点に注意してください。構文iswlower()関数の基
-
C/C++のtowupper()関数とは?ワイド文字を大文字に変換する使い方を解説
C/C++のtowupper()関数は、ワイド文字(wide character)を大文字に変換するための組み込み関数です。C++では「cwctype」ヘッダーファイル、C言語では「wctype.h」ヘッダーファイルで宣言されています。この関数は引数として1つのワイド文字を受け取ります。渡された文字が小文字であれば対応する大文字に変換して返し、すでに大文字である場合やアルファベット以外の文字の場合は、元の文字がそのまま返されます。towupper()関数の構文wint_t towupper( wint_t ch );パラメータ:ch:大文字に変換したいワイド文字戻り値:変換可能な場合は大文字に
-
C/C++のiswdigit()関数とは?ワイド文字が数字かどうかを判定する方法
iswdigit()関数は、C/C++に標準で組み込まれている関数の一つで、指定されたワイド文字(wide character)が10進数の数字であるかどうかを判定します。C++では「cwctype」ヘッダーファイル、C言語では「ctype.h」ヘッダーファイルで宣言されており、引数としてワイド文字を1つ受け取ります。 iswdigit()関数の動作 「0」から「9」までの文字は、10進数の数字として分類されます。判定の結果は以下のように戻り値で表されます。 ワイド文字が数字の場合:ゼロ以外の値(真)を返す ワイド文字が数字以外の場合:ゼロ(0)を返す 構文 C++におけるiswdigit
-
【C/C++入門】atol()・atoll()・atof()関数で文字列を数値に変換する方法
C/C++では、数字の並びとして表現された文字列を数値として扱いたい場面がよくあります。そんなときに便利なのが、標準ライブラリに用意されている文字列変換関数です。本記事では、atol()、atoll()、atof() の3つの関数について、それぞれの役割・構文・具体的な使用例をわかりやすく解説します。atol()関数atol()関数は、文字列をlong型の整数に変換するための関数です。変換が行われなかった場合は0を返し、変換に成功した場合は変換後のlong int値を返します。C++におけるatol()の構文は以下のとおりです。long int atol(const char *string)
-
C言語の書式指定子%dと%iの違いを徹底解説
C言語のprintf関数などで使われる書式指定子には「%d」と「%i」があります。この2つはよく似ていますが、それぞれ役割や挙動に特徴があります。本記事では、サンプルコードと実行結果をもとに、両者の違いをわかりやすく解説します。 書式指定子 %d とは %d は、整数値を符号付き10進整数として出力するための書式指定子です。値が正でも負でも、必ず10進形式で表示されます。 %d の使用例 以下は、C言語で書式指定子 %d を使用したサンプルプログラムです。 #include <stdio.h> int main() { int v1 = 7456; int v2 =
-
C言語のscanf()関数とfscanf()関数の違いと使い方を解説
scanf()関数とはscanf()は、C言語において標準入力(stdin)から書式付きデータを読み込むための標準ライブラリ関数です。読み取りに成功した項目の数を返し、入力に失敗した場合やファイルの終端に達した場合には負の値(EOF)を返します。C言語におけるscanf()の構文は以下のとおりです。int scanf(const char *characters_set)以下は、C言語でのscanf()の使用例です。例#include <stdio.h> int main () { char s[20]; &n
-
C言語のstrpbrk()関数の使い方と解説
strpbrk()関数とはC言語のstrpbrk()関数は、第1引数の文字列(string1)の中から、第2引数の文字列(string2)に含まれるいずれかの文字と最初に一致する文字を検索するために使用されます。一致する文字が見つかった場合、その文字へのポインタが返されます。一方、一致する文字が1つも見つからなかった場合はNULLが返されます。この関数を使用するには、ヘッダーファイル<string.h>をインクルードする必要があります。構文strpbrk()関数の構文は以下の通りです。char *strpbrk(const char *string1, const char *st
-
C/C++のstrcoll()関数とは?使い方と戻り値をわかりやすく解説
strcoll()関数とはC言語およびC++のstrcoll()関数は、現在設定されているロケール(locale)に基づく照合順序(collating sequence)に従って、2つの文字列を比較するための関数です。ヘッダーファイル <string.h> 内で宣言されています。一般的な strcmp() 関数がバイト値そのものを比較するのに対し、strcoll() はロケールの LC_COLLATE カテゴリで定義された照合規則を反映して比較を行う点が大きな特徴です。そのため、アクセント記号付きの文字や、特定の言語で定められた文字の並び順を正しく扱いたい場合に適しています。戻り値