![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c
文章平均质量分 58
melody_jae
这个作者很懒,什么都没留下…
展开
-
模拟实现strncpy函数
初学C语言的人应该对strcpy和strncpy函数很熟悉。strcpy函数用于实现字符串的复制,打开msdn可以看到它的函数原型为char *strcpy( char *strDestination, const char *strSource);可见然而它的功能仅限于拷贝整个字符串,属于不受限制的字符串函数;那么如果我们想拷贝有限的字符该怎么办?strncpy函数刚好提供了此功能。下面我们原创 2016-08-31 21:12:30 · 1203 阅读 · 0 评论 -
结构体传参
验证两个问题:(1)传入结构体和结构体指针分别占据了多大内存空间(即对比一下开销)(2)当传入结构体时在函数内部修改数据,对于原来的值,起作用吗?(main函数中打印输出)(3)当传入结构体指针时在函数内部修改数据,对于原来的值,起作用吗?(main函数中打印输出)#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>...原创 2018-10-24 17:07:18 · 2393 阅读 · 0 评论 -
(图解)理解--模2,除2与移位之间的关系
原创 2018-10-24 17:12:59 · 1458 阅读 · 0 评论 -
结构体知识点图谱总结(不断更新中)
原创 2018-10-27 21:12:17 · 429 阅读 · 0 评论 -
指针相关知识点总结(二)
一、字符指针重点:区别字符指针和字符数组的本质#include<stdio.h>#include<stdlib.h>int main(){ char str1[] = "hello"; char str2[] = "hello"; char*p1 = "hello"; char*p2 = "hello"; printf("str原创 2018-11-16 22:58:22 · 402 阅读 · 0 评论 -
模拟实现strstr函数
推荐一篇讲解KMP算法的文章--阮一峰http://www.ruanyifeng.com/blog/2013/05/Knuth–Morris–Pratt_algorithm.html推荐一篇讲解Boyer-Moore算法的文章--阮一峰http://www.ruanyifeng.com/blog/2013/05/boyer-moore_string_search_algorithm.html...原创 2018-11-06 16:20:14 · 7618 阅读 · 2 评论 -
模拟实现strcat函数
代码:#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>#include<stdlib.h>#include<string.h>#include<assert.h>char*Strcat(char*dest, const char*src){ assert(dest); ...原创 2018-11-08 23:54:15 · 130 阅读 · 0 评论 -
模拟实现strcmp函数
strcmpint strcmp ( const char * str1, const char * str2 );Compare two stringsCompares the C string str1 to the C string str2.This function starts comparing the first character of each string. ...原创 2018-11-04 19:40:16 · 209 阅读 · 0 评论 -
操作符知识点图谱总结(不断更新)
原创 2018-10-26 23:12:34 · 171 阅读 · 0 评论 -
模拟实现函数strlen
先看strlen函数的原型size_t strlen( const char *string );具体参数解释查看MSDN它是常用的字符串函数,用来统计字符串中字符的个数(不包含末尾的‘\0’).举个例子看一下strlen的用法#include<stdio.h>#include<string.h>int main(){ char a[]="hello";...原创 2018-08-11 19:14:15 · 200 阅读 · 0 评论 -
scanf读取含空格的字符串
前言:转载链接https://blog.csdn.net/chuhe163/article/details/81048751scanf()函数接收输入数据时,遇以下情况结束一个数据的输入: ① 遇空格、“回车”、“跳格”键。 ② 遇宽度结束。 ③ 遇非法输入。 scanf接收包含空格的字符串#include <stdio.h> int main() { ...转载 2018-08-02 17:41:02 · 10693 阅读 · 0 评论 -
模拟实现函数strcmp
strcmp函数是常用的字符串比较函数,原型为int strcmp( const char *string1, const char *string2 );它的比较原则是依次遍历两个待比较的字符串,每次比较一个字符。如果相等,则指针移动,比较下一个字符,直至有一个走到‘\0’则比较结束;如果不相等则不必继续比较。实际上比较的是字符的ASCII码,下面结果代表比较结果的具体含义Value ...原创 2018-08-12 23:09:40 · 473 阅读 · 0 评论 -
结构体数组的应用--排序相关
复习到结构体数组,牵扯到了排序的相关知识,巩固一下,本文从一个结构体数组的应用作为切入点,回顾之前遇到的编程按例。初版:“一个数组中如何找出最大的数并输出?”进阶:“一个数组中将所有数字由大到小排序”最终:“结构体数组的排序‘’本题题目:有n个学生的信息(包括学号、姓名、成绩),要求按照成绩的高低顺序输出各个学生的信息。(参见谭浩强《c程序设计》第4版p302例9.4)思路:用...原创 2018-08-17 19:02:25 · 819 阅读 · 0 评论 -
判断大小端
大小端(Endian)是指数据存储或者传输时的字节序,具体分为:大端和小端。大端(Big-Endian)模式,是指数据的低位(就是权值较小的后面那几位)保存在内存的高地址中,而数据的高位,保存在内存的低地址中;地址由小向大增加,而数据从高位往低位放。而小端(Little-Endian)模式,是指数据的低位保存在内存的低地址中,而数据的高位保存在内存的高地址中。总结起来就是:小端存储:低位存...原创 2018-08-22 00:06:50 · 6347 阅读 · 0 评论 -
链表
上篇文章用C语言简单实现了一个可变数组,但是,它有一个缺点:每一次变大时,都要申请一块新的内存空间,可以容纳下全部数据,然后再进行原来空间向新空间数据的拷贝。随着数组增大,数据越来越多,拷贝需要花很多时间。所以这种方法不高效,试想我们可以采用链表的方式:原来的内存不动,如果不够用,这时不是再申请更大一块再进行数据拷贝,而是就申请一个BLOCK大的一块内存,然后把它们链起来,如下:这样不仅避...原创 2018-08-25 00:43:29 · 288 阅读 · 0 评论 -
一道怪诞的程序---从反汇编的角度来理解前置++后置++
#include<stdio.h>#include<stdlib.h>int main(){ int i = 1; int ret = (++i) + (++i) + (++i); printf("%d\n", ret); printf("%d\n", i); system("pause"); return 0;}这道题的输出结果是多少?我们知...原创 2018-10-25 17:45:42 · 149 阅读 · 0 评论 -
指针相关知识点总结(一)
二、指针的解引用关于指针的解引用,先看一道例题#include<stdio.h>#include<stdlib.h>int main(){ int n = 0x11223344; char*pc = (char*)&n; int*pi = &n; *pc = 0x55; *pi = 0; sy...原创 2018-10-27 19:37:10 · 618 阅读 · 0 评论 -
模拟实现strcpy
代码:#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>#include<stdlib.h>#include<assert.h>char*Strcpy(char*dest, const char*src){ assert(src); assert(dest); char*start = de...原创 2018-11-09 00:08:39 · 126 阅读 · 0 评论