【C言語】文字列が空文字か判定する方法を解説

この記事では、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言語で文字列が空文字列かどうかを判定する方法です。

目次から探す