要读取带有空格的字符串值,我们可以在 C 编程语言中使用 gets() 或 fgets()。在这里,我们将看到gets() 和fgets() 之间的区别。
由于 fgets() 从用户读取输入,我们需要在运行时提供输入。
由于gets() 从用户读取输入,我们需要在运行时提供输入。
fgets()
它从指定的流中读取一行并将其存储到 str 指向的字符串中。它在读取 (n-1) 个字符、读取换行符或到达文件结尾时停止,以先到者为准。 语法 :char *fgets(char *str, int n, FILE *stream) str :指向复制读取字符串的字符数组的指针。 n :要复制到 str 的最大字符数 (包括终止的空字符)。 *stream :指向标识输入流的 FILE 对象的指针。 stdin 可用作从标准输入读取的参数。 returns :函数返回 str
- 它遵循一些参数,例如最大长度、缓冲区、输入设备引用。
- 使用它是安全的,因为它会检查数组绑定。
- 它继续阅读,直到遇到换行符或字符数组的最大限制。
// C program to illustrate
// fgets()
#include <stdio.h>
#define MAX 15
int main()
{
char buf[MAX];
fgets(buf, MAX, stdin);
printf("string is: %sn", buf);
return 0;
}
Input: Hello and welcome to 52cxydh Output: Hello and welcgets() 从标准输入 (stdin) 读取字符并将它们作为 C 字符串存储到 str 中,直到到达换行符或文件结尾。 语法:
char * 获取 ( char * str ); str :指向内存块的指针(字符数组) 其中读取的字符串被复制为 C 字符串。 returns :函数返回 str
- 使用不安全,因为它不检查数组绑定。
- 它用于从用户读取字符串,直到没有遇到换行符。
// C program to illustrate
// gets()
#include <stdio.h>
#define MAX 15
int main()
{
char buf[MAX];
printf("Enter a string: ");
gets(buf);
printf("string is: %sn", buf);
return 0;
}
Input: Hello and welcome to 52cxydh Output: Hello and welcome to 52cxydh