迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > C语言 >

C 中Scanf 函数输入带空格的字符串

作者:迹忆客 最近更新:2023/03/29 浏览次数:

本文将讨论 C 编程语言中的文件描述符。

在收集用户输入时,scanf() 在大多数情况下会忽略空格、反斜杠、制表符等内容; 然而,我们可以通过使用扫描集说明符来避免这种限制。 扫描集说明符由符号 %[] 表示。

通过在这些方括号中表达它,我们可以写一个字符或一个字符串,这取决于我们想要完成什么。

C 编程语言提供了几种不同的方式,我们可以使用这些方式从用户那里获取输入,同时保留其中包含的空格。 让我们看一些实施它的例子。


在 scanf 中使用 RegEx 在 C 中获取带空格的用户输入

这个 %[] 是一个扫描集说明符,使用 0-9a-z空格A-Z 表示只有这些字符可以用作输入。 没有别的可以使用。

s 表示计算机接受一个字符串作为其输入。

源代码:

#include <stdio.h>

int main (int argc, char const *argv[])
{
    char name[20];

    printf("Please enter your full name: ");
    scanf("%[0-9a-zA-Z ]s", name);
    printf("\nYour name is: %s", name);

    return 0;
}

输出结果:

Please enter your full name: Saad Aslam

Your name is: Saad Aslam

在 scanf 中使用 %[^\n]s 在 C 中获取带空格的用户输入

此实例的扫描集字符是 []^\n 字符指示操作系统继续读取用户输入,直到找到新行。

在这种情况下,我们利用了 XOR 运算符,除非两个字母相同,否则它会返回 true。 在确定该字符为换行 \n 后,XOR 运算符 ^ 将在读取字符串时返回false。

因此,我们将其写为 %[n]s 而不是 %s。 因此,要获得包含空格的输入行,我们可以使用以下内容:

scanf("%[n]s",str);

代码示例:

#include <stdio.h>

int main() {
    char str[100];

    printf("Please enter your full name: ");
    scanf("%[^\n]s",str);
    printf("\nYour name is: %s",str);

    return 0;
}

输出结果:

Please enter your full name: Saad Aslam

Your name is: Saad Aslam

在 scanf 中使用 %[^\n]%*c 在 C 中获取带空格的用户输入

在这种情况下,扫描集字符是 []^\n 字符指示操作系统继续接受输入,直到找到新行。

然后,使用 %*c 读取换行符,此处使用的 * 表示从输出中排除该换行符。

源代码:

#include <stdio.h>

int main()
{
    char str[20];

    printf("Please enter something: ");
    scanf("%[^\n]%*c", str);
    printf("\nYou entered: %s", str);

    return 0;
}

输出结果:

Please enter something: Writer at jiyik.com

You entered: Writer at jiyik.com

在 scanf 中使用 gets() 获取 C 中带空格的用户输入

C 库中包含的 char *gets(char *str) 函数将从标准输入 (stdin) 读取一行并将其保存在 str 引用的字符串中。 它会在读取换行符或到达文件末尾时停止,以先发生者为准,具体取决于具体情况。

源代码:

#include <stdio.h>

int main () {
    char str[50];

    printf("Please enter your name: ");
    gets(str);

    printf("\nYour name is: %s", str);

    return(0);
}

输出结果如下:

Please enter your name: Saad Aslam

Your name is: Saad Aslam

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

在 C 语言中使用 typedef enum

发布时间:2023/05/07 浏览次数:181 分类:C语言

本文介绍了如何在 C 语言中使用 typedef enum。使用 enum 在 C 语言中定义命名整数常量 enum 关键字定义了一种叫做枚举的特殊类型。

C 语言中的静态变量

发布时间:2023/05/07 浏览次数:151 分类:C语言

本文介绍了如何在 C 语言中使用静态变量。在 C 语言中使用 static 变量在函数调用之间保存变量值

C 语言中生成随机数

发布时间:2023/05/07 浏览次数:64 分类:C语言

本文演示了如何在 C 语言中生成随机数。使用 rand 和 srand 函数在 C 语言中生成随机数

C 语言中的 i++ 与++i

发布时间:2023/05/07 浏览次数:83 分类:C语言

本文演示了如何在 C 语言中使用前缀增量与后缀增量运算符。C 语言中++i 和 i++ 记号的主要区别

C 语言中获取当前工作目录

发布时间:2023/05/07 浏览次数:182 分类:C语言

本文演示了如何在 C 语言中获取当前工作目录。使用 getcwd 函数获取当前工作目录的方法

C 语言中的位掩码

发布时间:2023/05/07 浏览次数:126 分类:C语言

本文介绍了如何在 C 语言中使用位掩码。使用 struct 关键字在 C 语言中定义位掩码数据

C 语言中的排序函数

发布时间:2023/05/07 浏览次数:181 分类:C语言

本文演示了如何在 C 语言中使用标准库排序函数。使用 qsort 函数对 C 语言中的整数数组进行排序

C 语言中的 extern 关键字

发布时间:2023/05/07 浏览次数:114 分类:C语言

本文介绍了如何在 C 语言中使用 extern 关键字。C 语言中使用 extern 关键字来声明一个在其他文件中定义的变量

C 语言中的 #ifndef

发布时间:2023/05/07 浏览次数:186 分类:C语言

本文介绍了如何在 C 语言中使用 ifndef。在 C 语言中使用 ifndef 保护头文件不被多次包含 C 语言中的头文件用于定义同名源文件中实现的函数的接口。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便