C言語で文字列を入力する方法は何ですか?
C言語では、文字列を次の方法で入力することができます:
- 文字配列を使用すると、十分な大きさの文字配列を宣言して文字列を保存し、その後scanf関数やgets関数を使って標準入力から文字列を読み込むことができます。例えば:
#include <stdio.h>
int main() {
char str[100]; // 声明一个字符数组,大小为100
printf("请输入字符串:");
scanf("%s", str); // 使用scanf函数读取字符串
printf("输入的字符串是:%s\n", str);
return 0;
}
- ポインタを使用すると、ポインタ変数を宣言し、malloc関数を使って一定サイズのメモリ領域を割り当て、その後scanf関数やgets関数を使用して標準入力から文字列を読み込むことができます。例:
#include <stdio.h>
#include <stdlib.h>
int main() {
char *str; // 声明一个指针变量
str = (char *)malloc(100 * sizeof(char)); // 分配100个字符大小的内存空间
printf("请输入字符串:");
gets(str); // 使用gets函数读取字符串
printf("输入的字符串是:%s\n", str);
free(str); // 释放内存空间
return 0;
}
gets関数を使用する際は、割り当てられたメモリ空間が十分に大きいか確認して、オーバーフローを避けることが重要です。また、gets関数は既に安全とされていないため、より安全なfgets関数を使用することをお勧めします。