この記事では、C言語で文字列が空文字列かどうかを判定する方法を解説します。
目次から探す
空文字列の判定方法
プログラミングにおいて、文字列が空文字列かどうかを判定する方法はいくつかあります。
strcmp関数を使った判定方法
strcmp関数
は、2つの文字列を比較するための関数です。
この関数を使って、文字列が空文字列かどうかを判定することができます。
#include <stdio.h>
#include <string.h>
int main() {
char str[] = ""; // 空文字列の例
if (strcmp(str, "") == 0) {
printf("文字列は空です\n");
} else {
printf("文字列は空ではありません\n");
}
return 0;
}
上記のコードでは、strcmp関数
を使って文字列str
と空文字列とを比較しています。
もし、2つの文字列が等しい場合、strcmp関数
は0を返します。
そのため、strcmp(str, "") == 0
という条件式を使って、文字列が空文字列かどうかを判定しています。
strlen関数を使った判定方法
strlen関数
は、文字列の長さを取得するための関数です。
この関数を使って、文字列が空文字列かどうかを判定することもできます。
#include <stdio.h>
#include <string.h>
int main() {
char str[] = ""; // 空文字列の例
if (strlen(str) == 0) {
printf("文字列は空です\n");
} else {
printf("文字列は空ではありません\n");
}
return 0;
}
上記のコードでは、strlen関数
を使って文字列str
の長さを取得しています。
もし、文字列の長さが0であれば、つまり空文字列であれば、strlen(str) == 0
という条件式が成り立ちます。
そのため、文字列が空文字列かどうかを判定することができます。
ループを使った判定方法
さらに、ループを使って文字列の各文字を順番にチェックし、空文字列かどうかを判定する方法もあります。
#include <stdio.h>
int main() {
char str[] = ""; // 空文字列の例
int isEmpty = 1; // 空文字列かどうかを判定するフラグ
for (int i = 0; str[i] != '\0'; i++) {
isEmpty = 0; // 文字が存在する場合、フラグを0にする
break;
}
if (isEmpty) {
printf("文字列は空です\n");
} else {
printf("文字列は空ではありません\n");
}
return 0;
}
上記のコードでは、ループを使って文字列str
の各文字を順番にチェックしています。
もし、文字が存在する場合、つまり空文字列でない場合、フラグisEmpty
を0に設定し、ループを抜けます。
その後、フラグisEmpty
が1のままであれば、文字列は空文字列であると判定します。
以上が、C言語で文字列が空文字列かどうかを判定する方法です。