sscanf和sprintf

sscanf和sprintf:

int sscanf (const char *str,const char * format,…);
按照指定格式在str中找到字符串,并放入后边的地址

从这个位置——格式符所在位置对应字符串中的位置
%[n]s:从这个位置读取指定宽度的数据
%[aBc]:从这个位置读取aBc中的一个,如果这个位置的第一个匹配失败,就不再匹配了,如果匹配成功,继续匹配直到匹配到不aBc中的字符为止
%[a-z]:从这个位置读取a到z中的任意字符,直到遇到不是a到z的字符
%[^a-z]:从这个位置读取数据,直到遇到a到z中的任意一个字符为止,读取的数据不包括最后检测的a到z的字符
%[^a]:原理同上,只是这里指定停止的字符为a
%s:忽略字符串(跳过)
%d:忽略整形数据
%
[^@]:从这个位置忽略数据直到遇到字符@,@不忽略
(
%
[^a]:忽略数据直到a
%[^a]:读取数据直到a
)
%*[@]:忽略字符@

只要不是格式字符都要放入[ ]中

参考: https://blog.csdn.net/zhouwei1221q/article/details/44890617?utm_source=app&app_version=4.15.0&code=app_1562916241&uLinkId=usr1mkqgl919blenint

sprintf( char *buffer, const char *format [, argument,…] );
sprintf的第一个参数是目的字符串
sprintf的作用是将一个格式化的字符串输出到一个目的字符串中,而printf是将一个格式化的字符串输出到屏幕。第二个格式字符可以有多个,对应的,后面的参数也可以有多个。

可以使用sprintf实现把整形数据存放到char 数组中。
int num=123343;
char buf[100];
sprintf(buf,"%d",num);
int len=strlen(buf);
for(int i=0;i<len;i++) printf("%d=%c\n",i,buf[i]);

snprintf()

int snprintf(char *str, size_t size, const char *format, …);

将…中的字符串按照format中的格式转化,然后取所有转化后的数据中的size个字节存入str代表的地址中,按顺序从起始地址依次往后存放。
1,如果数据少于size,就补0.
2,如果数据多余size,取size-1个,最后一个是’\0’
返回的是所有原来的字符串转化之后的字符个数。
失败返回-1.
注意:str是char*类型(数组名也是),

perror:

void perror(const char *s);
  perror()用来将上一个函数发生错误的原因输出到标准设备(stderr)。参数 s 所指的字符串会先打印出,后面再加上错误原因字符串。。此错误原因依照全局变量errno的值来决定要输出的字符串。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值