如何使用scanf函数读取特殊字符(标点符号、连字符、冒号)? [英] How to read special characters (punctuation marks, hypens, colons) using scanf function?
本文介绍了如何使用scanf函数读取特殊字符(标点符号、连字符、冒号)?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我编写了一小段代码,可以通过键盘输入地址。但是,我不知道如何才能读入特殊字符,如连字符、冒号等。您能建议对下面的代码进行一些编辑吗:
#include<stdio.h>
main()
{
char address[80];
printf("Enter address: ");
scanf("%[a-z | A-Z | 0-9]", address); //How may I include characters like hypen.
printf("
%s
", address);
}
我得到的输出:
Enter Address: Plot No - 16, Palm Grooves, Nagpur - 440022, India
Plot No
未显示逗号、连字符或数字。
感谢您的帮助和意见。
推荐答案
逐个添加到可接受字符列表,如下所示:
"%[a-z | A-Z | 0-9/,.-]"
由于您将scanf
用于大小有限的缓冲区,因此最好向格式说明符添加一个大小约束,以避免缓冲区溢出:
char address[81]; // One extra character for padding
printf("Enter address: ");
scanf("%80[a-z | A-Z | 0-9/,.-]", address); // %80 limits the input
printf("
%s
", address);
这篇关于如何使用scanf函数读取特殊字符(标点符号、连字符、冒号)?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文