C语言
文章平均质量分 63
Shining-LY
这个作者很懒,什么都没留下…
展开
-
【C语言】实现注释转换(c->c++)
由上图可知:C语言注释转换主要分为四个状态:Nul_STATE(空状态)、C_STATE(C注释状态)、Cpp_STATE(C++注释状态)和End_STATE(结束状态);重要的是要分清每个状态结束的条件以及各个状态相互转换的边界条件,然后对其作具体情况的分析处理;所以我用了三个函数DoNulcomment()、DoCcomment()和DoCppcomment()进行注释转换;为了思...原创 2017-07-29 20:55:23 · 519 阅读 · 0 评论 -
结构体的定义、初始化以及typedef
一、首先来了解一下结构体的含义结构体(struct)是由一系列具有相同类型或不同类型的数据构成的数据集合,叫做结构;就我自己对结构体的理解就是当要用一个变量描述一个对象的多个属性时,普通的内置数据类型是表示不了的,这个时候就可以用结构体。这里运用一个简单实例来展示结构体的一般表现形式 struct stu{ int num; char name[20]; int age;}boy;in...原创 2017-07-10 14:32:05 · 1754 阅读 · 0 评论 -
简单的静态通讯录的实现。
实现一个通讯录:通讯录可以用来存储1000个人的信息,每个人的信息包括:姓名、性别、年龄、电话、住址提供方法:1. 添加联系人信息2. 删除指定联系人信息3. 查找指定联系人信息4. 修改指定联系人信息5. 显示所有联系人信息6. 清空所有联系人7. 以名字排序所有联系人 为了结构清晰我使用了三个文件来进行封装,Contact.h封装结构体以及函数的声明,test.c封装主函数,Contact.c...原创 2017-07-17 16:56:39 · 327 阅读 · 0 评论 -
模拟实现动态通讯录
动态内存开辟较静态内存开辟而言,内存比较灵活,静态内存是事先就给定的,动态内存开辟既节约内存空间,使用起来有比较灵活。 在动态内存开辟的过程中要熟练掌握malloc、realloc以及free函数的使用;为了测试比较容易一点,我们在注意#define定义的初始容量大小,不要太大。;和静态版通讯录一样,分别定义三个文件,代码如下:Contact.h#ifndef __CONT...原创 2017-07-17 20:13:02 · 297 阅读 · 0 评论 -
动态内存分配(malloc、realloc、calloc函数)
一、关于动态内存分配的定义(用时分配,不用释放)所谓动态内存分配,就是指在程序执行的过程中动态地分配或者回收存储空间的分配内存的方法。动态内存分配不象数组等静态内存分配方法那样需要预先分配存储空间,而是由系统根据程序的需要即时分配,且分配的大小就是程序要求的大小。二、相关函数1、malloc()函数函数原型:void *malloc(unsigned int num_bytes);参数:num_...原创 2017-07-17 20:38:55 · 1016 阅读 · 0 评论 -
模拟实现memcpy、memmove函数以及二者的区别
1、memcpy函数的介绍原型:extern void *memcpy(void *dest, void *src, unsigned int count);用法:#include <string.h>功能:由src所指内存区域复制count个字节到dest所指内存区域。注意:.source和destin所指的内存区域可以重叠,但是如果source和destin所指的内存区域重叠,那么...原创 2017-07-19 09:55:09 · 286 阅读 · 0 评论 -
三子棋小游戏的实现
初次写这个小游戏,程序设计也比较简单,其中还有许多需要改进的地方。这个三子棋程序我同样使用了三个文件,game.h、game.c、和test.cgame.h #define _CRT_SECURE_NO_WARNINGS 1#ifndef __GAME_H__#define __GAME_H__#include<stdlib.h>#include<ti...原创 2017-07-20 20:07:28 · 329 阅读 · 0 评论 -
C语言模拟实现strncpy、strncpy、strncat、strstr和strrstr函数实现
以下是我用C语言模拟实现的部分字符串函数:1、strncpy函数的实现 #include<stdio.h>#include<assert.h>#include<iostream>char*my_strncpy(char*dest, const char*src, int n){ assert(dest != NULL); assert(...原创 2017-07-25 17:46:24 · 1654 阅读 · 1 评论 -
用C语言实现通讯录的文件版本
之前写过通讯录的静态和动态版本,这两个版本都没有文件保存的功能,所以我们在使用的时候每次都需要重新输入,这样就显得很麻烦,所以这就需要文件版本的实现了,只需要在原来的动态版本上进行修改即可,在程序退出之前先保存文件即可。 以下是我的文件版本通讯录的代码,同样使用三个文件函数来实现:Contact.h#ifndef __CONTACT_H__ #define __CONTACT_...原创 2017-07-23 22:08:15 · 944 阅读 · 0 评论 -
用C语言实现静态顺序表
用C语言实现顺序表一般有静态和动态两种,静态顺序表在实行的过程中是直接定义一个数组,用他来存放数据,数据在顺序表中的存储是连续存放的,下面我将用三个函数文件来实现一个简单的顺序表,并且实现增、删、查、逆序、排序等功能:Seqlist.h(函数的声明以及头文件的引用)#ifndef __SeqList_H__ #define __SeqList_H__ #include<std...原创 2017-07-28 13:52:20 · 326 阅读 · 0 评论 -
【C语言】实现动态顺序表
其实动态顺序表就是在静态顺序表的基础上进行修改的,动态顺序表的底层实现是一个指向动态数组;我们根据存储数据的个数,在原开辟内存的基础上扩容,提供多余的空间储存数据;这种办法,不会造成多余开辟空间,对空间的浪费。也不会遇到储存数据太多,空间不够的情况(在正常内存范围内);下面同样使用三个函数文件实现:Seqlist.h#ifndef __SeqList_H__ #define __Seq...原创 2017-07-28 18:31:30 · 316 阅读 · 0 评论 -
用C语言模拟实现通讯录的文件版本
之前写了通讯录的静态版本和动态版本,但在使用的时候我们无法保存文件,只能每次使用的时候重新输入数据,比较麻烦,所以在动态的改进上生成了文件版本,文件版本只需要在动态的基础上添加相关文件读取和保存函数即可,同样使用三个文件实现,代码如下:contact.h#ifndef __CONTACT_H__ #define __CONTACT_H__ #include <stdi...原创 2017-07-24 07:44:31 · 296 阅读 · 0 评论