首页
学习
活动
专区
圈层
工具
发布
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    字符函数和字符串函数(一):字符分类函数、字符转换函数、strlen的使用和模拟实现、strcpy的使用和模拟实现、strcat的使用和模拟实现、strcmp的使用和模拟实现

    str[i]) { c = str[i]; if (islower) c = toupper; putchar(c); i++; } return 0; } 三、strlen的使用和模拟实现...= '\0' ) p++; return p-s; } 四、strcpy的使用和模拟实现 原型: char* strcpy(char* destination, const char* source...这个模拟实现的效果还不够好,我们还可以再改一下—— 参数、返回类型和功能要一致。...五、strcat的使用和模拟实现 char* strcat(char* destination, const char* source); 功能: 字符串追加,把source指向的源字符串中的所有字符都追加到...* r = strcat(arr1, arr2); printf("%s\n", arr1); printf("%s\n", r); return 0; } 也可以完成功能: 六、strcmp的使用和模拟实现

    17610

    使用requests和fiddler模拟登陆

    好久没更新Python相关的内容了,这个专题主要说的是Python在爬虫方面的应用,包括爬取和处理部分 上节我们说了如何操作浏览器自动订购12306火车票 [Python爬虫]使用Python爬取静态网页...-斗鱼直播 [Python爬虫]使用Python爬取动态网页-豆瓣电影(JSON) [Python爬虫]使用Python爬取动态网页-腾讯动漫(Selenium) [Python爬虫]使用Selenium...:requests 分析网页工具:BeautifulSoup4,fiddler4 ---- 关于requests requests是一个第三方库,可以用来模拟浏览器请求,如get,post 它也有Session...1.3 查看请求网页和header ? 1.4 查看POST请求参数 接下来我们双击该页面从右侧的WebForms查看POST参数 ? 也可以查看raw标签 ?...可以看到该csrf值存在于为登陆前的页面中 这时我们可以提取该值 1.6 POST模拟登陆 接下来我们构造header和post data 使用requests.post进行登陆 这时使用Session

    1.7K10

    qsort函数的使用和模拟实现排序

    本文介绍: 1.qsort函数的构成 2.qsort的使用 3.用qsort的实现原理模拟实现可排序所有类型数据的冒泡排序 自我介绍:一个脑子不好的大一学生,c语言接触还没到半年,若涉及到效率等问题,各位都可以在评论区提出见解...文章特点:会将重要步骤和易错点在代码中用注释标示(方便各位理解和定位) 1.qsort函数的构成 qsort是一个强大的函数,它可以比较任何类型的数据,整型已是so easy,它还可以比较浮点数,字符,...甚至是结构体,但是先别急,容我先讲讲它的构成再将其使用 由图可知,qsort函数的返回类型为int,第一个参数为void*,第二个和第三个参数为size_t,也就是unsigned int,第四个参数为函数指针...void*,这里为const void*的原因与之前一样,它方便接受各种类型的数据 (4)_cdecl: 函数调用约定,这里就需要你自行了解啦,它在这里作用不大,我就不进行叙述啦 2.qsort函数的使用...(这里就主要介绍cmp比较函数的构成啦,其他部分在后续代码中就能理解啦) cmp函数: 比较函数,我将对它分为自定义类型数据比较和自带类型分别进行介绍 我们要设计一个比较函数,先要搞清它的返回类型和参数

    44910

    华为鸿蒙模拟器安装和使用

    1.jpg 2、 启动华为鸿蒙模拟器 安装完成后,可以在Tools –》Devices Manager中启动鸿蒙模拟器,第一次启动会提示登录和华为开发者账号及实名认证,都同意后即可进入模拟器选择页面。...选择要模拟的设备类型,如Phone,选择手机型号,点击右侧的启动按钮,即可启动: 2.png 注意,模拟器启动后,只有一个小时的使用时间,到期后需要重新申请: 3.png 3、 官方文档 地址:...docs/documentation/doc-guides/tools_overview-0000001053582387 4、 部署自己的APK 通过实验,无法将APK通过拖拽,或者复制粘贴的方式上传到模拟器中...然后在模拟器中打开这些引用,下载APK。 APK下载完成后,可以在文件管理器中看到,直接点击安装就行啦。 安装完成就,就可以在模拟器中操作自己的应用做模拟测试啦。

    30.1K30

    使用数组模拟队列、循环队列和栈

    在一些考试题中以及笔试面试的过程中,在需要使用stack和queue的时候,可能被要求不能使用STL中相关的库函数,也就意味着我们需要使用纯C进行编程。...但是如果在考试中或者笔试面试中,为了要使用栈和队列,而去写一个完整的数据结构是比较大费周章,况且在时间上也不一定允许,因此,使用数组来模拟栈和队列的实现是一种明智的选择,原因有两个: 一、使用数组模拟队列和栈可以简化编程的复杂度...二、使用数组模拟的栈和队列在效率上比标准库的容器类高很多,可以使得程序执行的速度更快。...1.数组模拟栈的实现 数组模拟栈的的实现,在栈顶指针的处理上,一般有两种处理方式top=-1,和top=0,也就意味着在这两种情况下对栈的操作是不相同的。...2.数组模拟栈的实现 #include #define N 100 int q[N]; int f=-1, r=-1;//初始定义队头和队尾指针均为-1 void push(int

    1.2K20

    C++:List的使用和模拟实现

    博主觉得跟之前vector的基本上差不了多少,如果不会看文档用库里面的list的可以去看博主只管关于string和vector的使用。...C++:String类的使用-CSDN博客 C++:Vector的使用-CSDN博客 下面直接介绍List使用中的易错点 2.1 List的迭代器失效问题 我们之前学习vector的时候...三、模拟实现的注意事项 还是跟之前模拟实现一样,先看看SGI版本的源码 ,list本质上是带头双向链表 第一部分 链表节点 ​ 第二部分 迭代器 ​ 第三部分、链表 ​ 这里我们可以先实现链表节点结构体...所以此时有两个方案,第一个方案是我们要在第一个参数后面加u,但是这不符合我们的使用习惯,所以我们可以采用第二个方案,写个重载版本。...list模拟实现的全部代码 //c++喜欢ListNode驼峰法命名 为了和STL风格一致,我们也用小写 //但是STL版本和java喜欢小写带_ namespace cyx { //节点的封装

    31610

    html使用vue axios,使用 Vue和axios

    定 昨天写完了博客以后,有人就在我的博客下面留言说现在不是使用了Axios了吗?我赶紧再把Axios的例程给补上,并且做一个更新。 其实vue-resource并不复杂,就是不稳定。...Vue官方放弃它也是对的,作者是这样子说的 最近团队讨论了一下,Ajax 本身跟 Vue 并没有什么需要特别整合的地方,使用 fetch polyfill 或是 axios、superagent 等等都可以起到同等的效果...,vue-resource 提供的价值和其维护成本相比并不划 算,所以决定在不久以后取消对 vue-resource 的官方推荐。...已有的用户可以继续使用,但以后不再把 vue-resource 作为官方的 ajax 方案。 axios的确更优秀更稳定。 首先引入Vue和axios。...$http=axios; new Vue({ el: ‘#app’, data: { peps: ” }, mounted() { this.

    1.8K20

    使用cookie进行模拟登录

    学完验证码自动识别以后,学习cookie和session. 今天学习的特别艰难,首先是时过境迁,网站已经发生了很多变化,很多操作跟着老师来已经实现不了了,很难找到合适的网站。...另一个问题就是浏览器,火狐浏览器的抓包工具和Chrome的不太一样...导致我的学习进度十分缓慢,再者就是我的操作很多失误,一直没有得到想要的结果,好在现在已经解决了,不过还是要多加练习比较好。...模拟登录人人网。...下面就是一会要发post请求时data里的参数: 现在打开pycharm开始模拟登录。 首先导包。...现在为止我对cookie和session的了解还不够深入,现在去查看资料好好了解一下,加深理解。

    1.7K20

    【STL】之 list 使用方法和模拟实现

    前言: 之前我们分别手撕了string类和vector类,今天我们来跟list类打打交道~ list是什么?...通过查c++文档可知,list也是一个模板类,我们主要利用他进行数据的插入和删除操作,并且与vector不同的是,list的插入和删除操作用到的时间复杂度是O(1),而对于vector类的头插或者头删需要...通过查询文档可知,list的底层使用带头双向循环列表进行实现的,这样才能做到在任意位置删除和插入的时间复杂度都是O(1)。...迭代器类: 下面我们来实现list的迭代器类 我们之前实现的string和vector的迭代器都是原生指针,直接typedef指针即可,因为前者的底层存储空间是连续的,这样我们在使用迭代器进行遍历时,可以直接用指针...拷贝构造函数也可以用push_back函数复用,析构函数使用erase复用~ list的迭代器失效问题 对于insert而言,因为insert方法仅仅只是改变了指针的指向,所以本质pos指向的那个节点的绝对地址并不会随着

    29210

    vector的模拟和实现

    不同的库采用不同的策略权衡空间的使用和重新分配。但是无论如何,重新分配都应该是对数增长的间隔大小,以至于在末尾插入一个元素的时候是在常数时间的复杂度完成的。...与其它动态序列容器相比(deque, list and forward_list), vector在访问元素的时候更加高效,在末尾添加和删除元素相对高效。对于其它不在末尾的删除和插入操作,效率更低。...比起list和forward_list统一的迭代器和引用更好。...capacity 获取容量大小 empty 判断是否为空 resize(重点) 改变vector的size reserve (重点) 改变vector的capacity capacity的代码在vs和g...因此迭代器失效,实际就是迭代器底层对应指针所指向的空间被销毁了,而使用一块已经被释放的空间,造成的后果是程序崩溃(即如果继续使用已经失效的迭代器,程序可能会崩溃)。

    27210
    领券