C言語の文字列において空白を入力する方法は何ですか。

C言語では、scanf関数またはgets関数を使用して、スペースが含まれる文字列を入力することができます。

scanf関数を使用して文字列を入力する際は、”%[^\n]s”形式指定子を使用できます。これは改行文字以外のすべての文字を入力することを示します。以下に示すコード例:

#include <stdio.h>

int main() {
    char str[100];
    
    printf("请输入字符串:");
    scanf("%[^\n]s", str);
    
    printf("输入的字符串是:%s\n", str);
    
    return 0;
}

gets関数を使用して文字列を入力する場合、行全体の文字列を直接読み取ることができます。以下に例示コードを示します:

#include <stdio.h>

int main() {
    char str[100];
    
    printf("请输入字符串:");
    gets(str);
    
    printf("输入的字符串是:%s\n", str);
    
    return 0;
}

gets関数の使用は安全性の問題があるため、お勧めしません。代わりにfgets関数を使用することをお勧めします。fgets関数では、最大読み取り文字数を指定することができ、配列のオーバーフローを防ぐことができます。以下に示す例コードを参照してください:

#include <stdio.h>

int main() {
    char str[100];
    
    printf("请输入字符串:");
    fgets(str, sizeof(str), stdin);
    
    printf("输入的字符串是:%s\n", str);
    
    return 0;
}
bannerAds