char函数

c++字符串反转

纵饮孤独 提交于 2019-12-08 06:35:07
第一种:使用string.h中的strrev函数 #include <iostream> #include <cstring> using namespace std; int main() { char s[]="hello"; strrev(s); cout<<s<<endl; return 0; } 第二种:使用algorithm中的reverse函数 #include <iostream> #include <string> #include <algorithm> using namespace std; int main() { string s = "hello"; reverse(s.begin(),s.end()); cout<<s<<endl; return 0; } 第三种:自己编写 #include <iostream> using namespace std; void Reverse(char *s,int n){ for(int i=0,j=n-1;i<j;i++,j--){ char c=s[i]; s[i]=s[j]; s[j]=c; } } int main() { char s[]="hello"; Reverse(s,5); cout<<s<<endl; return 0; } 转自 : https://blog.csdn.net/szu

求两个字符串的乘积,结果存到字符串中

不羁的心 提交于 2019-12-08 06:18:40
求两个字符串的乘积,结果存到字符串中,例如字符串一中存的“657891”,字符串二中存的“521”,分别将字符串中的字符转换成整型数字,进行计算后,再转换成字符类型存储起来函数为 void mul(char *input1,int n,char *input2, int m,char *output)其中input1和input2是输入,n是input1的长度,n2是input2的长度。Output是输出 #include <stdio.h> #include <string.h> /** *实现字符串的反转,ptrBegin和ptrEnd分别指向开始和结束的字符,不包括‘\0’ e.g. 原来的字符"1234" ptrBegin指向‘1’, PtrEnd指向'4' */ void reversalStr(char *ptrBegin, char *ptrEnd){ char temp; while(ptrBegin < ptrEnd){ temp = *ptrBegin; *ptrBegin = *ptrEnd; *ptrEnd = temp; ptrBegin++; ptrEnd --; } } void intToStr(int data, char *str){ int flag = 0; char *ptr = str; if(data < 0){ flag = 1;

Linux操作系统 内存管理、用户操作和文件操作

﹥>﹥吖頭↗ 提交于 2019-12-08 05:16:21
内存管理、用户操作和文件操作 预备知识: 1、Linux系统的内存分为物理内存和虚拟内存。 物理内存 是指安装在计算机当中的主存储器; 虚拟内存 是 一段 虚拟的逻辑上连续的储存空间, 虚拟内存是由多个内存碎片组成,只有 正在使用的 虚拟内存被存放在 内存 上,对于暂时不使用的虚拟内存空间其实是储存在 外存 中。虚拟内存空间地址和实际的物理内存空间地址存在某种逻辑上的关系,如果虚拟内存空间地址的内容将被使用,通过逻辑关系可以计算出此部分内容对应的实际物理内存空间,然后将内容加载到内存中。虚拟内存在 一定程度上 独立于物理内存。 2、计算机的物理 内存空间有限(虚拟内存只要运行部分占用物理内存空间) 而且不同PC的 物理内存是不一样(通过虚拟内存空间,进程中代码的访存操作的地址全部是这个内存空间的地址) ,所以进程使用的是 虚拟内存空间 。 3、内存的最小粒度是页,进程虚拟地址空间和内存的映射也是以页为单位。页(面)的大小称为页面的大小,大小应该为2的幂。页号P=A/L;A表示逻辑地址空间中的地址(虚拟内存空间地址),L表示页面大小。 4、物理块:将内存的物理地址空间划分为若干块,称为物理块,物理块与页(面)一一对应。 5、页表储存在物理内存中,由操作系统维护。CPU中有一个 页表寄存器 ,里面存放着当前进程页表的 起始地址和页表长度

操作系统 Linux操作系统编程开发

♀尐吖头ヾ 提交于 2019-12-08 05:12:37
Linux操作系统编程开发 预备知识:   1、进程操作:Linux系统是 多任务的操作系统 ,采用 进程 作为 任务调度的单位, 进程在Linux系统下的概念是程序代码的一次执行,包括运行的代码和运行需要的数据、参数等资源。   2、进程和程序的区别:一方面:在Linux系统下,进程是程序代码的执行,所以程序是一段运行的,有生命力的程序,是一个动态的概念;一个程序是指储存在磁盘或者其他存储介质中的静态代码。另一方面:一个进程是基于一个程序运行的,而一个程序可以被重复载入到内存,形成多个进程!   3、 CPU时间片(Linux系统大约1ms) :时间片即CPU分配给各个程序的时间,每个线程被分配一个时间段,称作它的时间片,即该进程允许运行的时间。   4、Linux系统中进程在宏观上是并行,在微观上是串行的(一个CPU)。 在宏观上是并行 :同时可以打开多个进程;每个进程都有一个时间片和优先级。 在微观上是串行 :在每一个CPU时间片中,每个进程都有机会运行,优先级高的进程被运行的概率更大。如果时间片结束,进程还在运行,CPU将剥夺并分配给另一个进程;如果进程在时间片结束之前结束或者进入阻塞状态,CPU立即进行切换!一个CPU,一次只能执行程序的一部分。   5、mmu和多进程系统:   6、PID(进程号Process ID):在Linux系统中,每个进程都有一个 进程号

Oracle图书借阅系统数据库设计

烂漫一生 提交于 2019-12-07 22:31:43
一、实验目的 通过该实验把数据库的理论知识(数据库和数据表的设计理论、视图、索引、存储过程、触发器、数据库备份、数据库安全等)应用到具体的综合实例中,达到数据库知识整合的目的。完成学生成绩管图书借阅理系统基本功能设计,提高学生的分析问题、解决问题的能力。 二、设备与环境 硬件:多媒体计算机 软件:WindowsXP以上的操作系统、Oracle 10g 数据库管理系统 三、实验内容及实验结果 1.数据库设计 设计思想 创建一个表空间LIBTBS,用于保存图书管理系统的各种表,首先需要定义数据文件的存储地址,并且定义该数据文件的大小为500M、的分配方式为自动扩展、表空间的管理方式为本地管理。 然后,将该表空间对应的数据文件的扩展方式定义为自动扩展,当该数据文件被写满时,每一次扩展50M,最大的数据文件大小为1000M,防止数据文件被填满而无法扩展。 2 .数据表设计 设计思想 创建四个表,定义在 "SCOTT" 模式下,存储在之前建立的表空间 LIBTBS中。这四个表是读者表、图书表、借阅表和历史借阅表。 读者表的作用是存放读者信息,读者号,读者姓名,性别,年级,学院,等等读者相关的信息。 图书表的作用是存放图书信息, ISBN ,书名,作者,存储量,价格等图书的相关信息。 借阅表的作用是对读者表和图书表的一个链接,显示哪些人借的哪些书。借阅的日期和借阅过程产生的序列号信息。

C语言的文件读取与写入操作

一曲冷凌霜 提交于 2019-12-07 18:28:59
学了一年的C语言了,现在回过头来做一下总结。并且博客开了挺长一段时间却没有谢什么实际的东西。现在做下总结,对之后的学习帮助应该挺大的。与大家共勉! 现在,我先来介绍一下C语言的文件读取与写入的原理和具体操作方法。 C语言文件读取与写入是通过将文件看成一个字符序列进行读入和写出的。所以读取与写入文件就用到了指针,而这个指针是一个特殊的指针,我们称为文件指针。 指针名称是:FILE 对指针进行的文件打开操作是fopen。 引用百度百科对fopen这个函数进行介绍 函数简介 函数原型: FILE * fopen(const char * path,const char * mode); 返回值: 文件顺利打开后, 指 向该流的 文件指针 就会被返回。如果文件打开失败则返回NULL,并把 错误代码 存在 errno 中。 一般而言,打开文件后会做一些文件读取或写入的动作,若打开文件失败,接下来的读写动作也无法顺利进行,所以一般在fopen()后作错误判断及处理。 参数说明: 参数path 字符 串包含欲打开的文件路径及文件名,参数mode字符串则代表着流形态。 mode有下列几种形态 字符串 : r 以 只读 方式打开文件,该文件必须存在。 r+ 以可读写方式打开文件,该文件必须存在。 rb+ 读写打开一个 二进制文件 ,允许读写数据,文件必须存在。 w 打开只写文件

JavaSE-常用API

扶醉桌前 提交于 2019-12-07 18:20:30
目录 目录 第一章:API概述 第二章:Scanner类 第三章:Random类 第四章:ArrayList类 第五章:String类 第六章:Arrays类 第七章:Math类 第八章:Object类 第九章:Date类 第十章:System类 第十一章:StringBuilder类 第十二章:包装类 目录 第一章:API概述 什么是API? ​ API(Application Programming Interface), 应用程序编程接口 。Java API是一本程序员的 字典 ,是JDK中提供给 我们使用的类的说明文档。这些类将底层的代码实现封装了起来,我们不需要关心这些类是如何实现的,只需要学 习这些类如何使用即可。所以我们可以通过查询API的方式,来学习Java提供的类,并得知如何使用它们。 API使用步骤 打开帮助文档。 点击显示,找到索引,看到输入框。 你要找谁?在输入框里输入,然后回车。 看包。java.lang下的类不需要导包,其他需要。 看类的解释和说明。 学习构造方法。 使用成员方法 第二章:Scanner类 Scanner类介绍 一个可以解析基本类型和字符串的简单文本扫描器 使用步骤 导包: import java.util.Scanner; 构造函数: public Scanner(InputStream source) 常用方法: public

C++编写布尔表达式

与世无争的帅哥 提交于 2019-12-07 18:12:59
要求: 已知某种类型的布尔表达式由“V”、“F”、“!”、“&”和“|”组成,其中,“V”代表真值True,“F”代表真值False,“!”代表逻辑非运算,“&”代表逻辑或运算。并且,运算符“!”、“&”和“|”的优先级为:“!”最高,“|”最低,“&”介于“!”和“|”之间。你的任务是,计算给定布尔表达式的真值。 例如,布尔表达式“(V|V)&F&(F|V)”的真值为“F”. #include<iostream> #include<string.h> #include<malloc.h> #include<math.h> #include<typeinfo> #define Size 8 #include <cstdlib> using namespace std; unsigned char Super[8][8] = { // 运算符优先级表 // '~' '&' '|' '>' '(' ')' '#' /*'~'*/'>','>','>','>','>','<','>','>', /*'&'*/'<','>','>','>','>','<','>','>', /*'|'*/'<','<','>','>','>','<','>','>', /*'>'*/'<','<','<','>','>','<','>','>', /*'='*/'<','<','<','<','>','<

realloc 用法

瘦欲@ 提交于 2019-12-07 17:42:26
//转至: https://blog.csdn.net/snlying/article/details/4005238 最近在写source code时需要在数组的buffer小时重新申请一块buffer,故找了一些资料,乖乖,竟然原指针还可以“漂移”。。。。。。 realloc 原型:extern void *realloc(void *mem_address, unsigned int newsize); 用法:#include <stdlib.h> 有些编译器需要#include <alloc.h> 功能:改变mem_address所指内存区域的大小为newsize长度。 说明:如果重新分配成功则返回指向被分配内存的指针,否则返回空指针NULL。 当内存不再使用时,应使用free()函数将内存块释放。 注意:这里原始内存中的数据还是保持不变的。 举例: // realloc.c #include <syslib.h> #include <alloc.h> main() { char *p; clrscr(); // clear screen p=(char *)malloc(100); if(p) printf("Memory Allocated at: %x",p); else printf("Not Enough Memory!/n"); getchar(); p=

一个对异步IO的小小的介绍 (1)

二次信任 提交于 2019-12-07 16:35:49
一个对异步IO的小小的介绍 (2) 一个对异步IO的小小的介绍 (3) 一个对异步IO的小小的介绍 (4) 许多初学者都是从阻塞式IO网络编程开始的。如果一个IO操作是同步的,意味着当你调用相关的函数时,除非IO操作已经完成,否则函数不会立即返回,或者达到超时时间后才会返回。举例来说,当你使用TCP协议中的connect()函数时,你所在的操作系统将一个SYN包放入发往TCP另一端的数据队列中。除非从TCP另一端收到SYN ACK包,否则你的应用程序不会获得响应,或者经过足够的时间后放弃了连接网络才会获得响应。 这里有一个使用阻塞式IO的简单的客户端的例子:它打开一个www.google.com的连接,发送一个简单的HTTP请求,然后输出应答到stdout。 Example: A simple blocking HTTP client /* For sockaddr_in */#include <netinet/in.h>/* For socket functions */ #include <sys/socket.h>/* For gethostbyname */#include <netdb.h> #include <unistd.h> #include <string.h> #include <stdio.h> int main(int c, char **v) {