char函数

字符串复制

帅比萌擦擦* 提交于 2019-12-03 04:08:39
功能要求:把src 所指由NULL 结束的字符串复制到dest 所指的数组中。 分析:如果编写一个标准strcpy 函数的总分值为10,下面给出几个不同得分的答案: //得2 分 void strcpy( char strDest, char strSrc ) { while( ( strDest++ = strSrc++) != '/0' ); } //得4 分 void strcpy( char strDest, const char strSrc ) { //将源字符串加const,表明其为输入参数,加2 分 while( ( strDest++ = strSrc++) != '/0' ); } //得7 分 void strcpy(char strDest, const char strSrc) { //对源地址和目的地址加非0 断言,加3 分 assert( (strDest != NULL) && (strSrc != NULL) ); while( ( strDest++ = strSrc++) != '/0' ); } //得9 分 //为了实现链式操作,将目的地址返回,加2 分! char * strcpy( char strDest, const char strSrc ) { assert( (strDest != NULL) && (strSrc !=

【图文详细 】Scala——隐式转换和隐式参数

点点圈 提交于 2019-12-03 03:46:19
2、Scala 隐式转换和隐式参数 隐式转换和隐式参数是 Scala 中两个非常强大的功能,利用隐式转换和隐式参数,你可以提 供优雅的类库, 对类库的使用者隐匿掉那些枯燥乏味的细节。 隐式的对类的方法进行增强,丰富现有类库的功能 是指那种以 implicit 关键字声明的带有单个参数的函数。 可以通过::implicit -v 这个命令显示所有做隐式转换的类。 2.1、Scala 隐式转换探讨 现在我们来考虑一个问题: 之前讲过: 1 to 10 其实可以写成 1.to(10) 那其实就是表示:1 是一个 Int 类型的变量,所以证明 Int 类中会有一个 to 的方法 但事实上,我们在 Int 类型中根本就没有寻找 to 方法 那也就是说对一个 Int 类型的变量 1 调用 Int 类型不存在的一个方法,这怎么还能正常运行 呢? 原因就是 隐式转换 看一个最简单的隐式转换的例子: 那我们首先来看一下 隐式参数 : package com.mazh.scala.day3 object ImplicitParamTest { // 正常的普通方法 def add(x:Int, y:Int) = x + y // 柯里化的方法 def add2(x:Int)(y:Int) = x + y def add3(x:Int)(y:Int = 10) = x + y // 如果变成下面这种形式

顺序表完成教师职称管理系统

情到浓时终转凉″ 提交于 2019-12-03 03:44:49
一、要求: 总的模块要求:    第一个模块——主函数main()的功能是:根据选单的选项调用各函数,并完成相应的功能。    第二个模块——Menu()的功能是:显示提示选单。    第三个模块——Quit()的功能是:退出选单。    第四个模块——Create()的功能是:创建新的数据记录。    第五个模块——Add()的功能是:增加新的数据记录,并返回选单。    第六个模块——Find()的功能是:按要求查询相关的信息,如果找到了,则显示该信息,如果未找到,则提示文件中没有该信息,并返回选单。    第七个模块——Alter()[的功能是:修改某条记录的信息,如果未找到要修改的记录,则提示系统中无此记录,并返回选单。    第八个模块——Delete()的功能是:删除某条记录,如果未找到要删除的记录,则提示通讯录中没有,并返回选单。    第九个模块——List()的功能是:显示所有记录。 一、用链表或者顺序表实现以下系统,完成线性表的建立(至少包括10 个结点),以及线性表中信息(结点)的插入、查找、删除、修改、输出等操作,具体的模块要求见上方的“总的模块要求”。用“文件”存储数据。 6.教师职称管理系统的设计与实现 (1)教师信息包括:编号(char num[10])、姓名(char name[10])、性别(char sex[10])、职称(char prof

memcpy函数的用法以及实现一个memcpy函数

不羁的心 提交于 2019-12-03 02:33:21
memcpy的用法 在项目中经常用到 memcpy 来实现内存的拷贝工作,如下代码片段 memcpy( pData, m_pSaveData_C, iSize * sizeof( unsigned short ) ); memcpy 的函数原型为: void * memcpy ( void * destination, const void * source, size_t num ); memcpy函数的功能是从源内存地址的起始位置开始拷贝若干个 字节 到目标内存地址中,即从源source中拷贝num个 字节 到目标destin中。 示例代码 int main() { vector<int> vec; vector<int> vec1; vec.push_back(10); vec.push_back(100); vec1.resize(vec.size()); memcpy(vec1.data(),vec.data(),vec.size() * sizeof(int)); for (vector<int>::iterator it = vec1.begin();it != vec1.end();it++) { cout << *it; } char myname[] = "Pierre dee Fermat"; memcpy(person.name,myname,strlen

C++工程调用C#的DLL文件

匿名 (未验证) 提交于 2019-12-03 00:43:02
1、声明动态库的具体位置: #using "F: \\LIN.DLLService.dll" 2、使用命名空间 using LIN::DLLService; 3、实例化对象: gcroot<MESHelper^> g_pMESHelper; g_pMESHelper = gcnew MESHelper; 4、调用具体函数: String ^ResCode = gcnew String( "LIN01" ); CString oErrMessage; String ^ErrMessage = gcnew String( "" ); bool b = g_pMESHelper->ATELogOut(ResCode,ErrMessage); char *buf = new char [BUFSIZE]; memset (buf, 0, BUFSIZE); if (!b) { for ( int i = 0; i < ErrMessage->Length; i++) } delete buf; 这里 有几点要记住 : 1.使用#using引用C# DLL,而不是#include; 2.别忘了using namespace LIN::DLLService; 3.使用C++/clr语法,采用正确的访问托管对象,即:使用'^',而不是星号'*'。 文章来源: C++工程调用C#的DLL文件

C语言动态数组空间分配问题

匿名 (未验证) 提交于 2019-12-03 00:43:02
**动态数组起源:** 在实际的编程中,往往会发生这种情况,即所需的内存空间取决于实际输入的数据,而无法预先确定。对于这种问题,用静态数组的办法很难解决。为了解决上述问题,C语言提供了一些内存管理函数,这些内存管理函数结合指针可以按需要动态地分配内存空间,来构建动态数组,也可把不再使用的空间回收待用,为有效地利用内存资源提供了手段。动态数组的内存空间是从堆(heap)上分配(即动态分配)的。是通过执行代码而为其分配存储空间。当程序执行到这些语句时,才为其分配。程序员自己负责释放内存。对内存的动态分配是通过系统提供的库函数来实现的,主要有malloc,calloc,free,realloc这四个函数。对于用malloc分配的内存区间,如果原来没有被使用过,则其中的每一位可能都是0;反之, 如果这部分内存空间曾经被分配、释放和重新分配,则其中可能遗留各种各样的数据。但调用calloc()函数分配到的空间在分配时就已经被初始化为0了。 **申请原则:** 申请的时候从外层往里层,逐层申请;释放的时候从里层往外层,逐层释放。 1. 一维数组分配与释放: * 分配: 函数原型:char *p = (char *)malloc(m*sizeof(char)); //申请m个int大小空间的p数组 //一维数组组名可以看成数组起始元素的首地址,p表示申请数组的首地址,表示申请char类型

cocos2dx基础篇(4) 按钮

匿名 (未验证) 提交于 2019-12-03 00:43:02
这篇是直接复制的别人的,太多了,难得写。。。 【本节内容】 CCMenu、CCMenuItem 其具体的六个子类 【菜单CCMenu】 菜单 CCMenu 是用来装载菜单按钮的 图层 ,图层中的子节点只能够是菜单项CCMenuItem或其子类。一般我们先创建菜单项 CCMenuItem ,然后使用一个或多个菜单项生成菜单CCMenu,最后把CCMenu加入当前图层。 由于CCMenu的父类为CCLayer,锚点为(0,0),无法设置锚点。 CCMenu的默认原点坐标为屏幕正中心(winSize.width/2, winSize.height/2)。 常用操作: class CC_DLL CCMenu : public CCLayerRGBA { /** * 创建菜单的三个常用方法 */ //创建一个空菜单 static CCMenu* create(); //CCMenu::create(item1,item2,item3,NULL); //用CCMenuItem菜单项创建菜单,最后以NULL表示结束. static CCMenu* create(CCMenuItem* item, ...); //用一个包含CCMenuItem的CCArray数组来创建菜单 static CCMenu* createWithArray(CCArray* pArrayOfItems); /** *

STM32高级开发(12)-在GCC中使用printf打印串口数据

匿名 (未验证) 提交于 2019-12-03 00:40:02
在大家使用keil或是iar开发stm32等arm芯片的时候,想来最不陌生的就是使用print通过串口输出一些数据,用来调试或是其他作用。但是要明确的是由于keil iar gcc 他们使用的标准C语言库虽然都遵循一个标准,但他们底层的函数实现方式都是不同的,那么在GCC中我们能否像在keil中一样重映射print的输出流到串口上呢?答案是肯定的。 /* * libc_printf.c * * Created on: Dec 26, 2015 * Author: Yang * * 使用标准C库时,重映射printf等输出函数的文件 * 添加在工程内即可生效(切勿选择semihost功能) */ #include <stdio.h> //include "stm32f10x.h" #pragma import(__use_no_semihosting) //标准库需要的支持函数 struct __FILE { int handle; }; FILE __stdout; //定义_sys_exit()以避免使用半主机模式 _sys_exit( int x) { x = x; } //重映射fputc函数,此函数为多个输出函数的基础函数 int fputc( int ch, FILE *f) { while (USART_GetFlagStatus(USART1, USART_FLAG

Oracle_PL/SQL(1) 匿名块

匿名 (未验证) 提交于 2019-12-03 00:40:02
1. PL/SQL 简介 PL/SQL是一种比较复杂的程序设计语言, 用于从各种环境中访问Oracle数据库。 为什么使用PL/SQL? SQL是一种第四代语言,只描述做什么,不描述如何做。 一代语言:01 二代语言:汇编 三代语言:过程(条件判断、循环) 四代语言:sql DELETE FROM emp where major=‘MANAGER‘; 第四代语言相对简单,提供了较少的命令,它将用户与底层的基本数据结构和算法隔离开来。 但缺少第三代语言对过程(条件判断、循环)的处理。 PL/SQL(Procedural Language/SQL)过程性SQL语言,通过增加了过程性控制结构有效的 扩充了SQL的功能。 2. PL/SQL基础 2.1 PL/SQL块 所有的 PL/SQL程序都是由块构成的, 这些块可以顺序出现,也可以相互进行嵌套。 分类: 匿名块:没有名字,只能被执行一次。 函数: 存储过程: 包: 触发器: 匿名块语法: declare 声明部分; begin 执行部分; exception 异常处理部分; end; 第一个例子: begin null; --dbms_output.put_line(‘hello‘); end; 2.2 词法单位 词法单位是一个字符序列,包括: 大写和小写的字母,A~Z和a~z 数字,0~9 非显示的空字符,空格、回车、Tab键

文件操作

匿名 (未验证) 提交于 2019-12-03 00:39:02
(转)http://www.cnblogs.com/likebeta/archive/2012/06/16/2551780.html C语言文件操作详解 C语言中没有输入输出语句,所有的输入输出功能都用 ANSI C提供的一组标准库函数来实现。文件操作标准库函数有:       文件的打开操作 fopen 打开一个文件       文件的关闭操作 fclose 关闭一个文件       文件的读写操作 fgetc 从文件中读取一个字符               fputc 写一个字符到文件中去               fgets 从文件中读取一个字符串               fputs 写一个字符串到文件中去               fprintf 往文件中写格式化数据               fscanf 格式化读取文件中数据               fread 以二进制形式读取文件中的数据               fwrite 以二进制形式写数据到文件中去               getw 以二进制形式读取一个整数               putw 以二进制形式存贮一个整数     文件状态检查函数 feof 文件结束               ferror 文件读/写出错               clearerr 清除文件错误标志