自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(53)
  • 收藏
  • 关注

原创 C/C++ memmove与memcpy的区别及实现

1.与字符串函数strcpy区别:memcpy与memmove都是对内存进行拷贝可以拷贝任何内容,而strcpy仅是对字符串进行操作。memcpy与memmove拷贝多少是通过其第三个参数进行控制而strcpy是当拷贝至'\0'停止。2.函数说明:memcpy函数的功能是从源src所指的内存地址的起始位置开始拷贝N个字节到目标dst所指的内存地址的起始位置中。memmove函数的功能同memcpy基本一致,但是当src区域和dst内存区域重叠时,memcpy可能会出现错误,而memmove能正确

2022-03-18 11:36:14 282

原创 Linux之ubuntu 搭建samba服务(linux与windows之间共享文件)

环境:Ubuntu18.04 、win101.更新#更新软件源sudo apt-get update #更新所有软件sudo apt-get upgrade2.安装samba服务器sudo apt-get install samba 3.创建共享目录sudo mkdir /home/MySharesudo chmod 777 /home/MyShare4.添加用户设置密码#yy是linux的下我的用户名sudo smbpasswd -a yy5.配置/etc/samba/

2022-03-09 11:01:37 292

原创 IP地址和子网掩码

1、IP地址表示方法不同:一个A类IP地址是指, 在IP地址的四段号码中,第一段号码为网络号码,剩下的三段号码为本地计算机的号码。如果用二进制表示IP地址的话,A类IP地址就由1字节的网络地址和3字节主机地址组成,网络地址的最高位必须是“0”。A类IP地址中网络的标识长度为8位,主机标识的长度为24位。一个B类IP地址是指,在IP地址的四段号码中,前两段号码为网络号码。如果用二进制表示IP地址的话,B类IP地址就由2字节的网络地址和2字节主机地址组成,网络地址的最高位必须是“10”。B类IP地址中网络的

2022-01-04 16:35:15 1788

原创 罗马数字转整数(c语言)

https://leetcode-cn.com/problems/roman-to-integer/#include<stdio.h>#include<string.h>int romanToInt(char * s){ int num = 0; int tem = 0; int cmp = 0; for(int i = 0;*(s+i)!='\0';i++){ cmp = tem; switch(s[i]){

2021-12-22 17:58:09 960

原创 回文整数判断(C语言)

https://leetcode-cn.com/problems/palindrome-number/#include<stdio.h>#include<stdbool.h>bool isPalindrome(int x){ int len = 1; int xx= x; int num1 = 1; int num2 = 1; if(x < 0){ return false; } while(xx

2021-12-22 16:49:11 721

原创 删除排序数组中的重复项(c语言实现)

删除排序数组中的重复项#include<stdio.h>int len_g;int set(int *arr){ int len=0; for(int i = 0;i<len_g;i++){ for(int j = i+1;j<len_g;j++){ if(arr[i]<arr[j]){ arr[i+1] = arr[j]; break;

2021-12-14 23:20:22 1279

原创 C++如何避免数组越界

相信很多小伙伴在进行C语言学习和开发过程中都会遇到一个常见的bug,那就是数组越界,对于数组越界其主要是可能影响到正常的程序逻辑,其非常容易伪装成其他问题进而表现出来,比如由于越界篡改了相关数据,其暴露的现场就是相应数据被改后的现象,这样几乎无法直接从现象找到越界的位置。那么对于大部分优秀的C语言开发者而言,更多的是养成了良好的编程习惯,对于数组越界的访问变量进行防御性限制,从而防止越界访问的问题。当然对于要求编写高效的代码,就需要工程师们对代码进行严格的把控,以降低越界风险。然而C++作为一种带面向对

2021-11-24 14:14:42 2182

原创 将0x11223344转换为0x44332211(大小端转换)

#include<stdio.h>int main(){ int a = 0x11223344; char *p = (char *)&a; printf("%#x\n",a); printf("%#x %#x %#x %#x\n",p[0],p[1],p[2],p[3]); for(int i= 0;i<2;i++){ int j = 3-i; int tem = p[i]; p[i]=p[j]; p[j]=tem; }

2021-11-15 15:34:50 1520

原创 STL综合案例(学校演讲比赛)

学校演讲比赛介绍:1)某市举行一场演讲比赛( speech_contest ),共有24个人参加。比赛共三轮,前两轮为淘汰赛,第三轮为决赛。2)比赛方式:分组比赛,每组6个人;选手每次要随机分组,进行比赛;第一轮分为4个小组,每组6个人。比如100-105为一组,106-111为第二组,依次类推,每人分别按照抽签(draw)顺序演讲。当小组演讲完后,淘汰组内排名最后的三个选手,然后继续下一个小组的比赛。第二轮分为2个小组,每组6人。比赛完毕,淘汰组内排名最后的三个选手,然后继续下一个小组的比赛。

2021-11-06 10:20:30 248

原创 STL——集合算法(set_intersection、set_union、set_difference)

#define _CRT_SECURE_NO_WARNINGS#include<iostream>#include<vector>#include<algorithm>#include<functional>//#include<numeric>//算术生成算法的头文件using namespace std;//set_intersection算法 求两个set集合的交集//注意:两个集合必须是有序序列void test01()

2021-11-05 21:25:43 148

原创 STL——算数生成算法(accumulate/fill)

#define _CRT_SECURE_NO_WARNINGS#include#include#include#include#include//算术生成算法的头文件using namespace std;//accumulate算法 计算容器元素累计总和void test01(){vector v;v.push_back(10);v.push_back(20);v.push_back(30);//第三个参数是在总和上再加上0int ret=accumulate(v.begin

2021-11-05 18:18:16 103

原创 STL——拷贝和替换算法(copy/replace/swap)

#define _CRT_SECURE_NO_WARNINGS#include<iostream>#include<vector>#include<algorithm>#include<functional>#include<string>using namespace std;//拷贝void test01(){ vector<int> v; v.push_back(10); v.push_back(20);

2021-11-05 17:05:18 159

原创 STL——排序算法(merge、sort、random_shuffle、reverse)

#define _CRT_SECURE_NO_WARNINGS#include<iostream>#include<vector>#include<algorithm>#include<functional>#include<string>#include<ctime>using namespace std;//merge算法 容器元素合并,并存储到另一容器中void test01(){ vector<in

2021-11-05 16:40:23 124

原创 STL——查找算法(find/find_if/adjacent_find/binary_search/count)

#define _CRT_SECURE_NO_WARNINGS#include#include#include#include#includeusing namespace std;bool Myprint(int v){return v > 30;}void test01(){vector v;v.push_back(10);v.push_back(20);v.push_back(30);v.push_back(40);v.push_back(50);/*_I

2021-11-05 15:30:21 153

原创 STM——遍历算法(for_each、transform)

#define _CRT_SECURE_NO_WARNINGS#include<iostream>#include<vector>#include<algorithm>#include<functional>using namespace std;struct myPrint{public: myPrint() { a = 0; } void operator()(const int &val) { cout &lt

2021-11-04 21:20:47 139

原创 STL——适配器示例

#define _CRT_SECURE_NO_WARNINGS#include<iostream>using namespace std;#include<algorithm>#include<functional>#include<vector>#include<string>//第一步:继承binary_function<参数1,参数2,返回类型>struct Myfunc:public binary_funct

2021-11-04 19:49:39 75

原创 STL——内建函数对象举例

/*template<class T> bool equal_to<T>//等于template<class T> bool not_equal_to<T>//不等于template<class T> bool greater<T>//大于template<class T> bool greater_equal<T>//大于等于template<class T> bool less<T

2021-11-04 15:34:58 89

原创 STL——员工分配案例

#define _CRT_SECURE_NO_WARNINGS#include<iostream>#include<vector>#include<map>using namespace std;#include<string>#include<ctime>#define SALE_DEPATMENT 1 //销售部门#define DEVELOP_DEPATMENT 2 //研发部门#define FINACIAL_DEPAT

2021-11-04 14:20:11 85

原创 STL——set容器

#define _CRT_SECURE_NO_WARNINGS#include<iostream>using namespace std;#include<set>//multset也是这个头文件#include<algorithm>#include<string>void test(){ set<int>::iterator it; it++; it--; //it + 2;err //双向迭代器}void pri

2021-11-04 11:18:59 86

原创 STL——电梯案例

#define _CRT_SECURE_NO_WARNINGS#include<iostream>using namespace std;#include<list>#include<vector>#include<queue>#include<string>#include<ctime>//抽象人员class Student{public: string name;};//打印人员void print

2021-11-03 21:26:19 140

原创 STL——list容器

#define _CRT_SECURE_NO_WARNINGS#include<iostream>using namespace std;#include<list>#include<vector>#include<algorithm>void printList(const list<int> &mylist){ for (list<int>::const_iterator it = mylist.begin

2021-11-03 20:10:52 69

原创 STL——queue容器

#define _CRT_SECURE_NO_WARNINGS#include<iostream>using namespace std;#include<queue>#include<string>void test01(){ queue<int> q; for (int i = 0; i < 5; i++) { q.push(i + 1); } cout << "front:" << q.front

2021-11-03 19:09:21 97

原创 STM——stack容器

#define _CRT_SECURE_NO_WARNINGS#include<iostream>using namespace std;#include<stack>#include<string>//栈容器,先进后出//存储基础数据类型void test01(){ stack<int> s; s.push(10); s.push(20); s.push(30); s.push(40); s.push(50); //输出栈中

2021-11-03 19:08:48 74

原创 STL——打分案例

#define _CRT_SECURE_NO_WARNINGS#include<iostream>#include<vector>#include<deque>#include<string>#include<algorithm>//算法头文件#include<ctime>using namespace std;//目的:5个学生,10个评委,10个评委的分数去掉最高和最低分,取平均分就是学生的分数//抽象学生cla

2021-11-03 18:37:02 89

原创 STL——deque容器

#define _CRT_SECURE_NO_WARNINGS#include<iostream>#include<deque>using namespace std;void test(){ deque<int>::iterator it; it++; it--; it + 2;}void printDeque(const deque<int> &deq){ for (deque<int>::const_ite

2021-11-03 16:22:32 59

原创 STL———vector容器

#define _CRT_SECURE_NO_WARNINGS#include<iostream>using namespace std;#include<vector>void printVector(const vector<int> &vec){ for (vector<int>::const_iterator it = vec.begin(); it != vec.end(); ++it) { cout << *

2021-11-03 15:35:33 59

原创 STL——string容器

#define _CRT_SECURE_NO_WARNINGS#include<iostream>#include<string>using namespace std;void test(){ string::iterator it; it++; it--; it + 2;}/*构造函数string();//创建一个空的字符串 例如: string str;string(const string& str);//使用一个string对象初始

2021-11-03 14:36:38 57

原创 STL的基本使用示例(STL的helloworld)

#define _CRT_SECURE_NO_WARNINGS#include<iostream>#include<vector>//容器#include<algorithm>//算法的头文件#include<string>using namespace std;//加入算法的回调函数void MyPrint(int val){ cout << val << " ";}//1.存储基础数据类型void test

2021-11-02 22:00:53 186

原创 类FTP云盘项目(Linux文件管理系统)

ftpconfig.h#define LS 0#define GET 1#define PWD 2#define IFGO 3#define LCD 4#define LLS 5#define CD 6#define PUT 7#define QUIT 8#define DOFILE 9struct Msg{ int type; char data[1024]; char secondBuf[1024];};ftpserver.c#include <sy

2021-11-02 14:29:19 161

原创 多线程之条件变量(demo)

例子:假设共享资源初始值为400,每次访问此资源便会 -200。此时有五个线程,它们都想去获得资源。很显然只有两个线程能够访问到,那剩下的三个线程怎么办呢?进入条件变量等,等待唤醒。唤醒时这些线程会一个个去访问资源(每个线程访问资源时都需要上锁),如果能访问就资源-200,如果不能就继续回到条件变量等待唤醒。#include <stdio.h>#include <pthread.h> pthread_mutex_t m = PTHREAD_MUTEX_INITIALIZER

2021-09-12 21:06:12 91

原创 嵌入式2020——信号量集例程

csem.c#include <stdio.h>#include <errno.h>#include <sys/sem.h>int pmenu(void) { printf("--------------------\n"); printf(" 迷你图书馆\n"); printf("--------------------\n"); printf("[1] 借《三国演义》\n"); printf("[2] 还《三国演义

2021-09-12 20:20:18 185

原创 QT UDP网络广播

Sendersenderdialog.h#ifndef SENDERDIALOG_H#define SENDERDIALOG_H#include <QDialog>#include <QUdpSocket>#include <QTimer>namespace Ui {class SenderDialog;}class SenderDialog : public QDialog{ Q_OBJECTpublic: explici

2021-07-20 09:59:59 493

原创 QT实现TCP网络聊天室(服务器、客户端)

服务器:serverdialog.h#ifndef SERVERDIALOG_H#define SERVERDIALOG_H#include <QDialog>#include <QTcpServer>#include <QTcpSocket>#include <QDebug>#include <QTimer>namespace Ui {class ServerDialog;}class ServerDialog :

2021-07-18 17:07:47 2396 4

原创 QT实现学生成绩管理系统

studentdialog.h#ifndef STUDENTDIALOG_H#define STUDENTDIALOG_H#include <QDialog>//QT += sql#include <QSqlDatabase>#include <QSqlQuery>#include <QSqlQueryModel>#include <QSqlError>#include <QDebug>namespace Ui

2021-07-16 17:37:11 3274 2

原创 QT实现多线程打印信息(两种方法)

Thread1myclass.h#ifndef MYCLASS_H#define MYCLASS_H#include <QObject>#include <QThread>#include <QDebug>class MyClass : public QObject{ Q_OBJECTpublic: explicit MyClass(QObject *parent = 0); ~MyClass();signals:pub

2021-07-15 17:47:00 1816

原创 QT实现键盘方向键控制Label移动

keyboarddialog.h#ifndef KEYBOARDDIALOG_H#define KEYBOARDDIALOG_H#include <QDialog>#include <QKeyEvent>namespace Ui {class KeyboardDialog;}class KeyboardDialog : public QDialog{ Q_OBJECTpublic: explicit KeyboardDialog(QWidg

2021-07-15 10:29:24 2249 1

原创 QT实现鼠标拖拽Label

mousedialog.h#ifndef MOUSEDIALOG_H#define MOUSEDIALOG_H#include <QDialog>#include <QMouseEvent>namespace Ui {class MouseDialog;}class MouseDialog : public QDialog{ Q_OBJECTpublic: explicit MouseDialog(QWidget *parent = 0);

2021-07-14 20:34:43 2252 2

原创 QT实现“摇摇乐抽奖”(Lottery和Lottery2)

Lotterylotterydialog.h#ifndef LOTTERYDIALOG_H#define LOTTERYDIALOG_H#include <QDialog>#include <QPainter>//画家#include <QDir>//目录#include <QTimer>//定时器#include <QTime>//时间#include <QVector>//向量容器#include <QD

2021-07-14 16:01:26 671

原创 QT实现“图图秀”

showimageDialog.h#ifndef SHOWIMAGEDIALOG_H#define SHOWIMAGEDIALOG_H#include <QWidget>#include <QImage>//图片对象#include <QPainter>//画家类namespace Ui {class ShowImageDialog;}class ShowImageDialog : public QWidget{ Q_OBJECTpu

2021-07-13 20:41:52 141

原创 QT实现用户登录对话框

LoginDialog.h#ifndef __LOGINDIALOG_H#define __LOGINDIALOG_H#include "ui_LoginDialog.h"#include <QMessageBox> //消息提示框#include <QDebug> //打印调试class LoginDialog:public QDialog,public Ui::LoginDialog{ Q_OBJECTpublic: //构造函数 Log

2021-07-13 15:31:13 543

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除