当前位置: 首页 > news >正文

网站文章优化技巧西安企业应用软件开发定制

网站文章优化技巧,西安企业应用软件开发定制,运营网站需要多少钱,软件项目管理总结今天重点介绍2个函数,分别是sprintf和sscanf,用来将格式化数据和字符串相互转换。它们的作用分别是: sprintf函数用于将格式化数据转换成字符串。sscanf函数用于将字符串转换成格式化数据。 接下来是第一个大问题:我怎么记忆呢&…

相互转换

今天重点介绍2个函数,分别是sprintfsscanf,用来将格式化数据和字符串相互转换。它们的作用分别是:

  1. sprintf函数用于将格式化数据转换成字符串。
  2. sscanf函数用于将字符串转换成格式化数据。

接下来是第一个大问题:我怎么记忆呢?这好容易记反呀!

别担心,我来教你。你也许不知道sprintf和sscanf,但你肯定知道printf和scanf。

  1. printf负责把格式化数据输出到屏幕上。sprintf和printf类似,只不过不是输出到屏幕上,而是输出到一个字符串中。把格式化数据输出到字符串中,不就是把格式化数据转换成字符串嘛。
  2. scanf负责从键盘中输入格式化数据。同理,sscanf和scanf类似,只不过不是从键盘中输入数据,而是从一个字符串中输入数据,也就是把字符串转换成格式化数据。

接下来讲解如何使用这两个函数。

1.sprintf

假设有这么一个结构体:

struct S
{int i;double d;char arr[20];
};

我们创建了一个结构体变量:

struct S s = {10, 3.14, "abcdef"};

此时,内存中就有了一份格式化数据。我们如何把这个格式化数据转换成字符串呢?

首先得有字符串存储的位置,C语言用字符数组来存储字符串:

char str[100] = {0};

接下来我们要干的事情,就是把s结构体中的数据转换成字符串,存储到str中,这就需要使用sprintf。

sprintf的声明如下:

int sprintf ( char * str, const char * format, ... );

其中str就是转换出来的字符串要存储到哪(一个char*的指针),后面的参数就跟printf是一样的了。在上面的例子中,应该这么使用:

sprintf(str, "%d %lf %s\n", s.i, s.d, s.arr);

如果你还是不理解,可以这么想:下面的代码是什么意思?

printf("%d %lf %s\n", s.i, s.d, s.arr);

就是把s中的内容打印到屏幕上嘛。那如果不是打印到屏幕上,而是“打印”到字符串中,就是sprintf的作用了。

如果你不相信,可以把str中的内容打印出来:

printf("%s\n", str);

输出结果如下:
输出结果
这说明转换成功了。

2.sscanf

假设我们已经有一个字符串了:

char str[] = "10 3.140000 abcdef\n";

其实这个字符串和上面的例子中转换出来的字符串是一样的。

然后创建一个结构体:

struct S s = {0};

我们如何把这个字符串重新转换成结构体s呢?这就需要用到sscanf函数,声明如下:

int sscanf ( const char * s, const char * format, ...);

第一个参数就是你要转换的字符串,后面的参数和scanf一样。

这次,我换一种讲述方式,方便大家更好的理解。首先,假设我要你使用scanf函数来输入数据到结构体s中,你会怎么写?

scanf("%d %lf %s", &s.i, &s.d, s.arr);

注意,数组名本身就是地址,所以不需要取地址(&)。

scanf函数可以从键盘输入数据到结构体中去,那如果不从键盘中输入,而是从字符串输入呢?只需要使用sscanf,所有参数前面加上个str就行了。

sscanf(str, "%d %lf %s", &s.i, &s.d, &s.arr);

大功告成。你还可以把结构体中的数据打印出来:

printf("%d %lf %s\n", s.i, s.d, s.arr);

输出结果和上面讲解sprintf函数时举的例子的输出是一样的。
输出结果

总结

  1. sprintf和sscanf负责将字符串和格式化数据相互转换。
  2. sprintf相当于,本来是printf把格式化数据输出到屏幕上,现在是输出到一个字符串中,也就是把格式化数据转换成字符串。
  3. sscanf相当于,本来是scanf从键盘中输入格式化数据,现在是从一个字符串中输入,也就是把字符串转换成格式化数据。
  4. sprintf和sscanf的参数,与printf和scanf的参数的区别是,最前面多了个char*类型的指针,也就是指向字符串的指针。

感谢大家的阅读!

http://www.yayakq.cn/news/673439/

相关文章:

  • 珠海网站排名提升wordpress顺风车源码
  • 二维码生成器app深圳搜索引擎优化seo
  • 国家有规定必须做可信网站验证沛县网站建设
  • 网站设计收费明细表杭州网站排名seo
  • 有谁认识做微网站的制作网页前端
  • 腾讯朋友圈广告代理网站建设和谷歌优化
  • 上饶做网站哪家好wordpress短视频模版
  • 美工网站wordpress建站速度提升
  • 网站建设空间域名是什么询盘网站
  • 帮别人做网站 开票内容是什么传奇网址
  • 淘宝客推广网站怎么做建设网站技术方案
  • 郑州网站推广微信公众号的网站
  • qq网页版登录入口网站网页设计作业 定做
  • 免费网站站长推广扁平风格网站 模板免费下载
  • 行远金华网站建设公司江苏省城乡与建设厅网站首页
  • 做网站贷款马鞍山网站建设哪里有
  • 音乐网站的色彩搭配关键词排名网站
  • 做网站服务器系统网站建设网站维护的具体内容是什么
  • 恩施做网站的公司在线生成器免费
  • 网站建设 软件开发的公司排名跨境平台哪个最好做?
  • 学网站开发可以创业吗手机版 pc 版本 网站 跳转 seo
  • 帮人注册网站 做app网络营销推广培训班
  • 30岁学网站开发高品质的网站设计制作
  • 别人的网站是怎么找到的淘宝优惠券怎么做网站
  • 镇江群立网络科技有限公司广州市口碑seo推广
  • 如何给网站做提升电子商务网站设计的三大原则是
  • 企业网站托管服务公司网络营销引流到微信xiala5
  • 我做网站推广WordPress英文网站
  • 个人建站网站c2c模式有哪些电商平台
  • 建设主管部门网站查询用什么网站开发巴西客户