C++のisspace()関数とは?空白文字判定の使い方とサンプルコード
isspace()関数とは
isspace()関数は、<ctype.h>(C++では<cctype>)ヘッダーに定義されている標準ライブラリ関数の一つです。引数として渡された文字が空白文字(ホワイトスペース)であるかどうかを判定し、空白文字の場合は0以外の値(真)、そうでない場合は0(偽)を返します。
isspace()関数が空白文字と判定する主な文字は以下の通りです。
- 半角スペース(' ')
- 水平タブ('\t')
- 垂直タブ('\v')
- 改行('\n')
- フォームフィード('\f')
- キャリッジリターン('\r')
例1:文字列内のスペース数をカウントする
次のプログラムは、isspace()関数を使って文字列内に含まれるスペースの数をカウントする例です。
サンプルコード
#include <iostream>
#include <cctype>
using namespace std;
int main() {
char str[] = "Coding is fun";
int i, count = 0;
for(i=0; str[i]!='\0';i++) {
if(isspace(str[i]))
count++;
}
cout<<"Number of spaces in the string are "<<count;
return 0;
}
出力結果
Number of spaces in the string are 2
上記のプログラムでは、まず文字列"Coding is fun"を定義しています。次にforループを使い、文字列内の各文字を先頭から順番にチェックしていきます。文字がNULL文字'\0'に到達するまでループを繰り返し、isspace()関数で空白文字と判定されればcount変数に1を加算します。最後に、カウントした結果を出力しています。
特に重要な処理部分を抜き出すと、以下のようになります。
char str[] = "Coding is fun";
int i, count = 0;
for(i=0; str[i]!='\0';i++) {
if(isspace(str[i]))
count++;
}
cout<<"Number of spaces in the string are "<<count;
文字列"Coding is fun"には半角スペースが2つ含まれているため、出力結果は「2」となります。
例2:指定した文字が空白文字かどうかを判定する
続いて、isspace()関数の動作を示すもう一つのサンプルプログラムです。個別の文字が空白文字であるかどうかを判定します。
サンプルコード
#include <iostream>
#include <cctype>
using namespace std;
int main() {
char ch1 = 'A';
char ch2 = ' ';
if(isspace(ch1))
cout<<"ch1 is a space"<<endl;
else
cout<<"ch1 is not a space"<<endl;
if(isspace(ch2))
cout<<"ch2 is a space"<<endl;
else
cout<<"ch2 is not a space"<<endl;
return 0;
}
出力結果
ch1 is not a space
ch2 is a space
このプログラムでは、英字'A'を格納したch1と、半角スペースを格納したch2という2つのchar型変数を定義しています。その後、isspace()関数でそれぞれが空白文字かどうかを判定し、if-else文で結果を出力しています。
char ch1 = 'A';
char ch2 = ' ';
if(isspace(ch1))
cout<<"ch1 is a space"<<endl;
else
cout<<"ch1 is not a space"<<endl;
if(isspace(ch2))
cout<<"ch2 is a space"<<endl;
else
cout<<"ch2 is not a space"<<endl;
'A'はアルファベットであり空白文字ではないため「ch1 is not a space」、一方で半角スペースは空白文字に該当するため「ch2 is a space」と表示されます。
まとめ
isspace()関数は、文字が空白文字かどうかをシンプルな条件式で判定できる便利な関数です。単語ごとの分割や文字列の前後の余白除去、トークナイズ処理など、テキスト解析の場面で幅広く活用されています。
なお、C++では従来の<ctype.h>ではなく、名前空間stdに対応した<cctype>ヘッダーのインクルードが推奨されている点にも注意しましょう。
-
C++のlog()関数とは?自然対数を求める方法をわかりやすく解説
C++の標準ライブラリには、数学的な計算を行うための便利な関数が多数用意されています。その中でもlog()関数は、数値の自然対数(ネイピア数 e を底とする対数)を求めるために使用される重要な関数です。log()関数の基本情報C/C++のライブラリ関数 double log(double x) は、引数 x の自然対数(底が e の対数)を返します。この関数を使用するには、ヘッダーファイル <cmath> をインクルードする必要があります。関数の宣言double log(double x)パラメータと戻り値パラメータ: x は浮動小数点型(double)の値です。自然対数を求めたい
-
C++のswap()関数とは?2つの変数の値を入れ替える方法をサンプルコード付きで解説
swap()関数とは C++のswap()関数は、2つの値を入れ替える(交換する)ための関数です。この関数を利用すれば、一時的な第三の変数を自分で用意することなく、2つの変数の値を簡単に入れ替えることができます。 swap()関数の構文 void swap(int variable_name1, int variable_name2); 変数に値を代入してswap()関数に渡した場合、関数内では値の入れ替えが行われますが、呼び出し元の実際の変数の値は変わりません。これは、引数が「値渡し」で渡されるためです。実際の変数の値を入れ替えたい場合は、後述する「参照渡し」を使用します。 例1:s