📜  如何将字符串输入到 char 数组 cpp - C 编程语言(1)

📅  最后修改于: 2023-12-03 14:53:03.911000             🧑  作者: Mango

如何将字符串输入到 char 数组

在 C/C++ 编程语言中,我们经常需要将字符串读取到 char 数组中以便于处理。下面我们将介绍几种常见的方法。

使用 fgets()

fgets() 函数是 C 语言中读取字符串的常用函数,它的声明如下:

char *fgets(char *str, int n, FILE *stream);

其中,str 为指向 char 数组的指针,n 为接收的字符数(包括字符串结束符 '\0'),stream 指定输入流(例如 stdin 表示从控制台输入)。

下面是一个示例代码,演示如何使用 fgets() 读取字符串:

#include <stdio.h>

int main() {
    char str[100];
    printf("请输入字符串:");
    fgets(str, 100, stdin);
    printf("您输入的是: %s", str);
    return 0;
}
使用 scanf()

scanf() 函数也可以用来读取字符串,但是相对于 fgets() 函数,它更容易出现问题,因为 scanf() 函数会在空格和换行符处停止读取(但是下一个 scanf() 函数并不会自动清除掉之前的换行符)。所以,建议只在必要情况下使用 scanf()。

下面是一个使用 scanf() 读取字符串的示例代码:

#include <stdio.h>

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

gets() 函数是 C 语言中的另一种读取字符串的函数,如果在输入字符串时没有遇到问题,它的效果和 fgets() 函数是一样的。然而,gets() 函数经常会发生缓冲区溢出的问题,因此 C++11 标准已经不再支持使用该函数。

下面是一个使用 gets() 读取字符串的示例代码:

#include <stdio.h>

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

总结:

  • fgets() 函数是读取字符串的常用函数,使用较为安全。
  • scanf() 函数也可以用来读取字符串,但是需要注意格式化字符串。
  • gets() 函数已经被淘汰,不建议使用。