c/c++编程
斗鹰
沿心的方向坚持走下去。
展开
-
模拟实现strcpy函数
strcpy函数是字符串操作函数,用来字符串复制,把一个字符串的内容复制到另一个字符串中。 src称为源字符串,dst称为目的操作串。 函数实现如下:char * my_strcpy(char* dst,const char * src) //[1]{ assert(dst != NULL && src != NULL)//[2] char * = ret原创 2017-02-14 23:11:43 · 614 阅读 · 0 评论 -
qsort 排序
使用qsort排序一个整型数组,一个浮点型数组,一个字符串数组。#include <stdio.h>#include <stdlib.h>int Compare(void* elem1,void* elem2){ return (*(int *)elem1)-(*(int*)elem2);}void Print(int * arr,int sz){ int i = 0;原创 2017-03-24 23:36:55 · 297 阅读 · 0 评论 -
实现bubble_sort<冒泡法>
自己实现一个bubble_sort(冒泡排序),可以完成不同类型数据的排序。#include <stdio.h>int compare(void* elem1,void* elem2){ return (*(int*)elem1)-(*(int*)elem2);}void bubble_sort(int * arr,int sz,int (*cmp)(void* elem1,void*原创 2017-03-24 23:40:28 · 315 阅读 · 0 评论 -
模拟实现atoi函数
#include <stdio.h>#include <ctype.h>#include <assert.h>#define INT_MAX 100000#define INT_MIN -100000int my_atoi(char* str){ int ret = 0; //用于返回 int flag = 1;原创 2017-03-24 23:46:30 · 279 阅读 · 0 评论 -
模拟实现memmove
#include <stdio.h>#include <assert.h>#include <string.h>char* my_memmove(char* dst,char* src, int len){ char* d = dst + len; char* s = src + len; assert(dst && src); if (src<dst &&原创 2017-03-24 23:52:43 · 190 阅读 · 0 评论 -
逆序<作业题>
有一个字符数组的内容为:”student a am i”,请你将数组的内容改为”i am a student”.要求:不能使用库函数。只能开辟有限个空间(空间个数和字符串的长度无关)。tneduts a ma i -> i am a student 代码如下#include <stdio.h>#include <assert.h>#include <windows.h>void str_swi原创 2017-03-24 23:56:35 · 222 阅读 · 0 评论 -
探究继承+virtual与不加virtual在对象内存中的分配
第一个没有加 virtualclass A{public: int _a;};class B : public A{public: int _b;};class C : public A{public: int _c;};class D : public C, public B{public: int _d;};int main(){原创 2017-03-26 16:28:08 · 659 阅读 · 0 评论 -
浅析智能指针
说到智能指针,就必须得先知道RAII,因为智能指针是RAII的一种应用,RAII 其实就是资源分配即初始化,,定义一个类来封装资源的分配和释放,在构造函数中完成资源的分配和初始化,在析构函数完成资源的清理,可以保证资源的正确初始化和释放。那么我们为什么要用智能指针呢?我们不是已经学了分配资源和清理资源的动态内存管理的标识符new 和delete了吗?,完全够用了啊,为什么还要用智能指针呢,因为我们原创 2017-05-01 17:07:18 · 326 阅读 · 1 评论 -
c语言里缓冲区的理解
从一个简单的例子开始:[cpp] view plain copy print?#include <stdio.h> int main() { char a[20] ; char str[20] ; printf(”请输入文件名:”) ; scanf(”%s” , a ) ; printf(”请输入关键字:”) ; //getcha转载 2017-04-16 18:49:05 · 19708 阅读 · 8 评论 -
浅析迭代器失效
什么是迭代器失效呢,首先迭代器的失效是指在容器内进行插入元素或者删除元素之后,迭代器不能正常的访问或遍历数据,使其失去了本来的功能。我们常见的迭代器失效,比如在vector 的插入数据和删除数据,会导致迭代失效,,在链表里删除数据时,也会导致迭代器失效,,今天我们重点看在vector和list里的迭代器失效。 一,vector中删除一个元素,会导致迭代器失效,,具体看图 那么我们该如何解决原创 2017-05-04 00:47:57 · 877 阅读 · 0 评论 -
linux多线程编程1
(一).线程概念1.线程是程序执行流的最小单元,是进程内部的执行分支,一个进程内有多个线程。 2.vfork创建子进程,在调用exec和exit(程序终止)之前,子进程会在父进程的地址空间内运行。 3.linux下没有描述线程的结构体,所以并没有真正意义的线程,进程有PCB(task_struct 结构体),而线程没有。但是在windows下有真正意义上的线程,有描述线程的结构体TCB。 4.原创 2017-06-10 21:51:41 · 309 阅读 · 0 评论 -
malloc calloc realloc三者区别
转载这篇文章,点击链接请看详情http://blog.csdn.net/shuaishuai80/article/details/6140979转载 2019-02-27 23:51:03 · 243 阅读 · 0 评论 -
c++实现单链表
#define _CRT_SECURE_NO_WARNINGS 1#pragma once//单向链表#include <iostream>#include <assert.h>using namespace std;typedef int DataType;struct ListNode{ DataType _data; ListNode* _next; List原创 2017-03-24 23:20:00 · 214 阅读 · 0 评论 -
C和Cpp里面的动态内存管理
c动态内存管理c语言里面的动态内存管理函数,介绍的有4个,分别是malloc, realloc,calloc,和free,其函数原型分别如下void *malloc(size_t size); void *calloc(size_t num_elements,size_t element_size); void realloc(void ptr,size_t new_size); void原创 2017-03-12 12:22:57 · 584 阅读 · 0 评论 -
##模拟实现strlen函数
strlen函数也是字符串操作函数,是用来求字符串的长度,以‘\0’为结束标志,长度不包含’\0’这个字符,例如;#include <stdio.h>int main(){ char arr[9] = "1234abcd"; printf("%d\n",strlen(arr)); return 0;}最后程序运行结果如下 现在自己实现my_strlen 函数如下:#i原创 2017-02-15 16:13:39 · 212 阅读 · 0 评论 -
c语言扫雷源程序的实现
扫雷源程序如下;分为3部分,game.h文件里放着所用的头文件,自己定义的头文件,以及实现函数的声明部分;game.c文件里放的是具体函数的实现,tset.c文件里放的是扫雷程序的主逻辑,框架,具体看下面:game2.h 文件#ifndef __GAME_H__#define __GAME_H__#define DEFAULT_COUNT 30// 设置30颗雷#define ROWS 10原创 2017-02-15 16:42:53 · 1833 阅读 · 0 评论 -
用c语言实现三子棋
实现人机对战三子棋,其文件组成形式为头文件和源文件形式,具体如下: game.h文件中放入函数的声明,以及用到的宏定义,以及头文件的包括. game.c文件中放的是各部分函数功能的实现. test.c文件中是测试函数,放的是整个程序实现的主逻辑. 各部分代码如下:game.h#ifndef __GANE_H__#define __GANE_H__ // 头原创 2017-03-04 00:11:39 · 677 阅读 · 0 评论 -
const,static关键字用法归纳
众所周知const,和static关键字在c语言与cpp中都扮演重要角色,能熟练掌握它们,将对c语言和cpp 的学习起到很大的帮助作用。 今天我就来把自己掌握的这方面知识,和大家分享一下,可能自己归纳的不全,也有许多不足之处,希望大家能多多批评和指正。 首先,先来看const这个关键字。const用法归纳<在c语言中> 1. const修饰变量,具有常属性,即只读属性,但仍是一个变量;原创 2017-03-04 16:17:21 · 505 阅读 · 0 评论 -
模拟实现Strstr
strstr为库函数的一种,是用来查找字符串子串,其库函数原型为 char *strstr( const char *string, const char *strCharSet ); 下来我们自己来模拟实现它#define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> #include<assert.h> #include<stdlib.h原创 2017-03-05 16:47:18 · 444 阅读 · 0 评论 -
浅谈宏与函数的区别
宏与函数我将从五个方面来谈谈它们的区别,理解了这5个方面,我们就能知道该在什么情况下使用它们,就能更好的写出高效的代码了。1.代码长度> 宏代码是直接插入到程序中,代码出现多次,除了非常小的宏之外,宏能使程序的长度大幅增加。> 函数代码只出现在一个地方,每次使用这个函数时,都调用那个地方的同一份代码。2.执行速度> 宏的执行速度更快,直接插入的。> 函数的返回与调用存在额外的开销,速度慢一些。3原创 2017-03-09 00:27:30 · 335 阅读 · 0 评论 -
c语言模拟实现strcat
strcat也是字符串操作函数,是用来拼接字符串的,其库函数原型为 extern char *strcat(char *dest, const char *src) ,具体事例如下; 例如:有char *str1 = “abcd”,char *str2 = “1234”,strcat (str1,str2)可以将1234连接到abcd后面,结果是abcd1234,并且存放在str1中,当然str原创 2017-03-05 17:34:18 · 466 阅读 · 0 评论 -
模拟实现strcmp函数
strcmp为字符串比较函数,其函数原型为int strcmp( const char *string1, const char *string2 ); 其功能是用来比较两个字符串,设这两个字符串为str1,str2,若str1=str2,则返回零;若str1< str2,则返回负数(一般为负1);若str1>str2,则返回正数(一般为正1)。 思路:把两个字符串的字符(ASCII码)一个一个原创 2017-03-07 00:17:11 · 922 阅读 · 0 评论 -
如何快速转载CSDN中的博客
前言 对于喜欢逛CSDN的人来说,看别人的博客确实能够对自己有不小的提高,有时候看到特别好的博客想转载下载,但是不能一个字一个字的敲了,这时候我们就想快速转载别人的博客,把别人的博客移到自己的空间里面,当然有人会说我们可以收藏博客啊,就不需要转载,(⊙o⊙)… 也对。。实现 因为我自己当初想转载的时候却不知道该怎么转载,所以学会了之后就把方法写出来,帮助那些想转载却不知道该怎么转载的人(大神勿笑转载 2017-03-10 00:06:15 · 251 阅读 · 1 评论 -
main函数命令行参数
C程序最大的特点就是所有的程序都是用函数来装配的。main()称之为主函数,是所有程序运行的入口。其余函数分为有参或无参两种,均由main()函数或其它一般函数调用,若调用的是有参函数,则参数在调用时传递。C/C++语言中的main函数,经常带有参数argc,argv,如下:int main(int argc, char** argv)int main(int argc, char* ar转载 2017-03-10 00:17:07 · 520 阅读 · 0 评论 -
回调函数应用
https://www.cnblogs.com/zhonglongbo/p/8410464.html转载 2019-03-26 21:05:34 · 569 阅读 · 0 评论