-
C言語のstrspn()関数とは?使い方とサンプルコードを解説
strspn()関数とはC言語のstrspn()関数は、第1引数の文字列(string1)の先頭から順に調べ、第2引数の文字列(string2)に含まれる文字だけで構成されている部分、つまり「接頭辞」の長さを計算するための関数です。そして、その部分文字列の長さをsize_t型として返します。この関数を使用するには、ヘッダーファイル<string.h>をインクルードする必要があります。構文size_t strspn(const char *string1, const char *string2);パラメータstring1: 調査対象となる文字列へのポインタstring2: 一致する
-
C言語のispunct()関数とは?使い方とサンプルコードを解説
ispunct()関数は、引数として渡された文字が句読点(記号)であるかどうかを判定するために使用される関数です。渡された文字が句読点でない場合は0を返し、句読点である場合は0以外の値(真)を返します。ここでいう句読点とは、アルファベットや数字、空白以外の印刷可能な記号文字(!、@、#、$、%など)を指します。なお、ispunct()関数を使用するには、ヘッダーファイル <ctype.h> をインクルードする必要があります。構文C言語におけるispunct()関数の構文は以下の通りです。int ispunct(int character);引数には判定対象の文字をint型で指定しま
-
C言語におけるfflush(stdin)の使い方と注意点
fflush(stdin)とはC言語のfflush()関数は、指定されたストリームの出力バッファをフラッシュ(強制的に書き出す)するために使用されます。戻り値は、正常に終了した場合は0、失敗した場合はEOFとなり、その際にはストリームのエラー指示子(error indicator)がセットされます。なお、標準C規格(ISO C)では、入力ストリームであるstdinに対してfflush()を呼び出した場合の動作は未定義とされています。ただし、Microsoft Visual C++など一部の処理系では、入力バッファをクリアする手段としてfflush(stdin)が拡張機能としてサポートされている
-
【C/C++】strdup()とstrndup()で文字列を複製する方法を徹底解説
strdup()関数とはstrdup()関数は、文字列を複製(コピー)するために使用される関数です。引数として渡された文字列と同じ内容の新しいメモリ領域を確保し、NULL終端されたバイト文字列へのポインタを返します。なお、strdup()はPOSIXで定義されている関数であり、厳密にはC標準ライブラリには含まれません。内部ではmalloc()を使ってメモリを動的に確保するため、使い終わったらfree()で解放する必要がある点に注意しましょう。また、メモリ確保に失敗した場合はNULLが返されます。C言語におけるstrdup()の構文は以下の通りです。char *strdup(const char
-
C言語のrand()関数とsrand()関数:擬似乱数の生成方法を解説
rand()関数とはrand()関数は、C言語で擬似乱数を生成するために使用される標準ライブラリ関数です。戻り値は整数型で、0からRAND_MAX(一般的に32767)までの範囲の値を返します。この関数を使用するには、ヘッダーファイル「stdlib.h」をインクルードする必要があります。C言語におけるrand()の構文は以下の通りです。int rand(void);rand()の使用例#include <stdio.h> #include <stdlib.h> int main() { printf(%d\n, rand()); printf(%d,
-
【C/C++入門】isgreater()関数の使い方をわかりやすく解説
isgreater()関数は、第1引数が第2引数より大きいかどうかを判定するための関数です。C言語では「math.h」ヘッダーファイル内で宣言されており、C++でも同様に利用できます。比較が成立した場合はtrue(真)を返し、成立しなかった場合はfalse(偽)を返します。 本記事では、isgreater()関数の基本構文から、実際のコード例、実行結果の解説までをわかりやすく紹介します。 構文 bool isgreater(value1, value2); パラメータ value1 − 第2引数(value2)と比較される第1引数です。 value2 − 第1引数(value1)がそれよ
-
C / C++のmodf()関数とは?使い方とサンプルコードを解説
modf()関数は、渡された引数(浮動小数点数)を整数部分と小数部分に分割するための関数です。数学的な計算を行うために「math.h」ヘッダーファイル内で宣言されており、戻り値として引数の小数部分を返します。整数部分は、第2引数として渡されたポインタが指す変数に格納されます。 modf()関数の構文 C言語におけるmodf()の構文は以下の通りです。 double modf(double value, double *integral_pointer); パラメータの説明 value − 整数部分と小数部分に分割する対象となる値です。 integral_pointer − 分割後の整数部
-
C/C++のポインタ演算入門:加算・減算・インクリメント・デクリメントの使い方
C言語におけるポインタ演算とは、ポインタ変数に対して加算や減算、インクリメントなどの算術操作を実行することです。ポインタ演算には主に以下の4種類があります。 加算(+) 減算(-) インクリメント(+1) デクリメント(-1) ポインタ演算の重要な特徴は、移動量が「指し示すデータ型のサイズ × 演算数」で計算される点です。例えば、int型(一般的な環境では4バイト)のポインタに1を加えると、アドレスは1バイトではなく4バイト進みます。さらに5を加えた場合は、4バイト × 5 = 20バイト分アドレスが移動します。 ポインタ演算のサンプルコード 以下は、C言語でポインタ演算を実行する具体的な
-
C言語のsize_tデータ型とは?特徴と使い方をわかりやすく解説
size_tは、C言語における符号なし整数型(unsigned integral type)です。任意のオブジェクトのサイズをバイト単位で表現し、sizeof演算子の戻り値として返されます。また、配列のインデックス指定やカウント処理にも広く利用されており、負の値になることはありません。さらに、標準ライブラリ関数であるstrcspnやstrlenなどの戻り値の型もsize_tとして定義されています。 size_tの構文 C言語におけるsize_tの宣言方法は以下の通りです。 const size_t var_name; 各要素の意味は次の通りです。 var_name − 宣言する変数の名前を指
-
C/C++のmain()関数は何を返すべき?戻り値の意味と使い方を解説
main()関数の戻り値は、プログラムがどのような状態で終了したかを示す重要な情報です。プログラムが問題なく正常終了した場合は「0」を返します。一方、コード内でエラーや異常が発生し、処理が中断された場合には「0以外の値(非ゼロ)」を返して終了します。 なお、C++言語ではmain()関数のreturn文を省略することも可能です。その場合、標準規格に従ってデフォルトで0が自動的に返される仕様になっています。 main()関数の基本構文(C言語) int main() { …. return 0; }
-
C言語のfgets()とgets()の違いと安全な文字列入力の方法
C言語で標準入力から文字列を読み込む際に使われる代表的な関数が fgets() と gets() です。どちらも文字列を取得する目的は同じですが、安全性の面で大きな違いがあります。本記事では、それぞれの構文・使い方・特徴をサンプルコードとともに詳しく解説します。 fgets()とは fgets() は、改行文字まで(または指定した文字数まで)文字列を読み取る関数です。最大の特徴は配列の境界をチェックする点にあり、バッファオーバーフローを防げるため安全な入力関数として推奨されています。 fgets()の構文 char *fgets(char *string, int value, FILE *
-
C/C++におけるmalloc()とnew()の違いと使い方を徹底解説
malloc()とは malloc()関数は、要求されたサイズのバイト数分のメモリを割り当て、割り当てられたメモリ領域の先頭バイトへのポインタを返します。メモリの割り当てに失敗した場合は、NULLポインタを返します。 C++言語におけるmalloc()の構文は以下の通りです。 pointer_name = (cast-type*) malloc(size); 各パラメータの意味は次の通りです。 pointer_name − ポインタ変数に付ける任意の名前です。 cast-type − malloc()で割り当てたメモリをキャストするデータ型です。 size − 割り当てるメモリのサイズ(バイ
-
C/C++におけるvoidポインタのサイズとは?環境別のサイズと確認方法を解説
C/C++におけるvoidポインタのサイズは、実行環境(システムのアーキテクチャ)によって異なります。ポインタのサイズは、その環境で扱えるメモリ空間の大きさに依存するためです。各環境におけるvoidポインタのサイズは以下の通りです。16ビットシステム: 2バイト32ビットシステム: 4バイト64ビットシステム: 8バイトこのように、ポインタのサイズは環境のビット幅と一致するのが一般的です。これは、ポインタがメモリアドレスを格納するため、アドレス空間を表現できるだけのサイズが必要だからです。voidポインタのサイズを確認するサンプルコード以下は、C言語でsizeof演算子を使ってvoidポインタ
-
C/C++のisblank()関数とは?使い方とサンプルコードを徹底解説
isblank()関数は、引数として渡された文字が空白文字であるかどうかを判定するために使用される標準ライブラリ関数です。ここでいう空白文字とは、半角スペース( )のほかに、タブ文字(\t)も含まれます。なお、改行文字(\n)などは空白文字として扱われない点に注意してください。 この関数は、C言語では「ctype.h」ヘッダーファイル、C++では「cctype」ヘッダーファイルで宣言されています。 isblank()の構文 C++におけるisblank()関数の構文は以下の通りです。 int isblank(int char); 引数には判定対象の文字を渡し、その文字が空白文字であれば0以外の
-
C/C++のiswblank()関数とは?使い方とサンプルコードを解説
iswblank()関数は、引数として渡されたワイド文字が空白文字(ブランク)であるかどうかを判定するための関数です。ここでいう空白文字とは、基本的に半角スペースのことであり、タブ文字(\t)も空白として扱われます。この関数は、C言語ではctype.hヘッダー、C++ではcctypeヘッダーで宣言されています。 iswblank()の構文 int iswblank(wint_t char); 引数には検査対象となるワイド文字を指定します。戻り値は、渡された文字が空白文字であれば0以外の値(真)を返し、空白文字でなければ0(偽)を返します。 iswblank()の使用例 以下は、C++言語におけ
-
C/C++のiswpunct()関数とは?使い方とサンプルコードを解説
iswpunct()関数の概要C/C++のiswpunct()関数は、引数として渡されたワイド文字が句読点(記号)であるかどうかを判定するための関数です。判定結果は以下のように返されます。ワイド文字が句読点である場合:非ゼロの値(真)を返すワイド文字が句読点でない場合:0(偽)を返すこの関数を使用するには、ヘッダーファイル「cwctype」をインクルードする必要があります。iswpunct()関数の構文int iswpunct(wint_t character);パラメータcharacter:判定対象となるワイド文字(wint_t型)戻り値句読点の場合:非ゼロの値句読点以外の場合:0iswpu
-
C言語のstrcspn()関数とは?使い方とサンプルコードをわかりやすく解説
C言語のstrcspn()関数は、2つの文字列を比較し、第1引数の文字列(string1)の中に、第2引数の文字列(string2)に含まれる文字が最初に現れる位置までの文字数を数える関数です。この関数を使用するには、ヘッダーファイル「string.h」をインクルードする必要があります。 戻り値としては、string1 の先頭から、string2 のいずれかの文字が最初に一致する直前までの文字数が返されます。 strcspn()関数の構文 size_t strcspn(const char *string1, const char *string2); パラメータ string1:走査(検索
-
C/C++のislessequal()関数とは?使い方とサンプルコードを解説
C言語およびC++のislessequal()関数は、第1引数が第2引数以下であるかどうかを判定するための関数です。この関数は「math.h」ヘッダーファイルで宣言されており、条件が成立した場合はtrue(1)を、成立しなかった場合はfalse(0)を返します。 なお、islessequal()はC99以降で標準化されたマクロであり、通常の比較演算子と異なり、NaN(非数)を含む比較でも無効演算例外を発生させずに処理できるという特徴があります。 islessequal()の構文 bool islessequal(value1, value2); パラメータ value1 − value2と比較
-
C / C++のstrxfrm()関数とは?使い方とサンプルコードを解説
strxfrm()関数とはstrxfrm()関数は、ソース文字列を現在のロケール(locale)に基づいて変換し、変換後の文字列の先頭から指定された文字数をコピー先にコピーする関数です。C言語では「locale.h」ヘッダーファイルで宣言されています。また、戻り値として変換後の文字列の長さ(NULL終端文字を除く)を返します。構文C言語におけるstrxfrm()の構文は以下の通りです。size_t strxfrm(char *destination, const char *source, size_t number)パラメータdestination − 変換後の文字がコピーされるコピー先のポ
-
C/C++におけるコメントの書き方と使い方
コメントとは、コンパイラによって無視されるコードの一部分のことです。コメントを適切に活用することで、コードの可読性と理解しやすさが大幅に向上します。C++言語では、単一行コメントと複数行コメントのどちらも同じように機能します。C/C++におけるコメントの種類C/C++では主に2種類のコメントが使えます。単一行コメント:「//」から行末までがコメントとして扱われます。複数行コメント:「/*」から「*/」までの間がすべてコメントとして扱われます。// 単一行コメント/*複数行コメント*/以下は、C言語におけるコメントの使用例です。使用例#include <stdio.h>#includ