【C语言】如何读取带空格的字符串?

简介: 【C语言】如何读取带空格的字符串?

scanf()函数在读取字符时,识别到空格就会终止读取,那么如何读取带空格的字符串呢?

一、gets()(gets_s())

从标准输入(stdin)(指的是键盘输入)读取字符,并将它们作为 C 字符串存储到 str 中,直到达到换行字符或文件末尾。

即gets()函数会一直读取字符直到遇到换行符\n(回车)或文件末尾截至。

需要注意的是:在VS中gets()函数被替代为gets_s()。

int main()
{
  char str[100] = "\0";
  gets_s(str);
  puts(str);
  return 0;
}

这里可以留一下gets_s()与fgets()的区别。

二、fgets()

由上图我们发现,fgets()在输入时会保留键盘中输入的(\n)回车。于是在这里我测试了一下,结果如下:

很明显他输出了两个换行符,这明显与我的预期不同,于是我发现puts()函数在输出时也会输出一个(\n)换行符,如果我把puts()换成printf(),那么就会只有一个fgets()的换行符了。

改用printf():

三、scanf()

scanf("%[^\n]", str);

scanf可以利用上述形势完成带有空格的字符串的输入

目录
相关文章
|
3月前
|
NoSQL 程序员 Redis
C语言字符串的设计缺陷
C语言字符串的设计缺陷
37 1
|
3天前
|
C语言
C语言 字符串操作函数
本文档详细介绍了多个常用的字符串操作函数,包括 `strlen`、`strcpy`、`strncpy`、`strcat`、`strncat`、`strcmp`、`strncpy`、`sprintf`、`itoa`、`strchr`、`strspn`、`strcspn`、`strstr` 和 `strtok`。每个函数均提供了语法说明、参数解释、返回值描述及示例代码。此外,还给出了部分函数的自实现版本,帮助读者深入理解其工作原理。通过这些函数,可以轻松地进行字符串长度计算、复制、连接、比较等操作。
|
19天前
|
C语言
【C语言】字符串及其函数速览
【C语言】字符串及其函数速览
19 4
|
19天前
|
C语言
【C语言篇】字符和字符串以及内存函数详细介绍与模拟实现(下篇)
perror函数打印完参数部分的字符串后,再打印⼀个冒号和⼀个空格,再打印错误信息。
|
19天前
|
存储 安全 编译器
【C语言篇】字符和字符串以及内存函数的详细介绍与模拟实现(上篇)
当然可以用scanf和printf输入输出,这里在之前【C语言篇】scanf和printf万字超详细介绍(基本加拓展用法)已经讲过了,这里就不再赘述,主要介绍只针对字符的函数.
|
3月前
|
C语言
C语言学习笔记之初识字符串
C语言学习笔记之初识字符串
32 5
|
3月前
|
C语言
c语言左旋字符串问题(不同方法超详细解答)
c语言左旋字符串问题(不同方法超详细解答)
20 1
|
2月前
|
安全 C语言
C语言8 数组与字符串
C语言8 数组与字符串
18 0
|
2月前
|
存储 C语言
C语言6 字符串输入和格式输入函数
C语言6 字符串输入和格式输入函数
27 0
|
3月前
|
安全 编译器 C语言
C语言学习记录——字符串相关函数及部分模拟(strcmp、strncmp、strncat、strncpy、strstr、strtok、strerror)
C语言学习记录——字符串相关函数及部分模拟(strcmp、strncmp、strncat、strncpy、strstr、strtok、strerror)
28 1