char

结构体的基础芝士

拟墨画扇 提交于 2020-03-10 20:44:45
emmmmm 结构体是一种构造数据类型,可以将不同类型的数据构成一个集合,用于描述复杂的对象; 使用结构体可以实现大规模对象集合的存储与处理,并且可以通过运用结构体和动态内存分配构造出一种新型线性结构–链表; 结构体类型与结构体变量 结构体类型声明: struct 结构体类型名 //结构体类型为用户自定义类型,需要先定义,后使用;struct是关键字 { 数据类型 属性名 1 ; //“属性名”也可称“成员” 数据类型 属性名 2 ; . . . . . . } ; //!!!!不能把这个分号给忘了一定; 类似代码 struct Family { char name [ 10 ] ; //姓名 int age ; //年龄 char sex ; //性别 char IDcard [ 19 ] ; //身份证号码 char TElphone [ 12 ] ; //电话号码 } ; 结构体类型定义还可以嵌套,即利用一个已定义的结构体类型作为另一个结构体类型的成员; 定义一个日期结构体类型 struct data { int year ; int month ; int day ; } ; 将struct Family 中的 age 属性修改成 struct data 类型的 BIRth 属性。 struct Family { char name [ 10 ] ; struct data

oracle与sql sever的财务月份归属的问题

泪湿孤枕 提交于 2020-03-10 17:04:39
一、问题描述 财务结账周期是上月26号到本月的25号,比如 2020-01-26 00:00:00 到 2020-02-25 23:59:59 现在要求2020年的大于1月26到2月01之间的数据,在报表中显示2月的财务月份,其他同事说有函数,我也没找, 写了个case when , 这样写的弊端就是执行效率有点慢 --case when的思路是 if 31>=dd>=26 then mm=mm+1 if mm=13(跨年) then mm=01 yyyy=yyyy+1 else yyyy=yyyy end if else mm=mm yyyy=yyyy end if; 输出yyyy-mm 实际数据 呈现数据 2019-12-23 2019-12 2019-12-24 2019-12 2019-12-25 2019-12 2019-12-26 2020-01 2019-12-27 2020-01 2019-12-28 2020-01 2019-12-29 2020-01 2019-12-30 2020-01 2019-12-31 2020-01 2020-01-01 2020-01 ................ 2020-01-25 2020-01 2020-01-26 2020-02 2020-01-27 2020-02 1.Oracle写法: SELECT case

替换空格

你。 提交于 2020-03-10 16:38:22
class Solution { public: void replaceSpace(char *str,int length) { int blankNum = 0; for(int i = 0; i <= length; i++){ if(str[i] == ' ') blankNum++; } char *p = str + length; char *q = p + blankNum*2; for(int i = 0; i <= length; i++){ if(*p == ' '){ *q = '0'; q--; *q = '2'; q--; *q = '%'; q--; } else{ *q = *p; q--; } p--; } } }; 来源: https://www.cnblogs.com/olajennings/p/12456303.html

Excell列标题

北城以北 提交于 2020-03-10 16:38:16
原题   Given a positive integer, return its corresponding column title as appear in an Excel sheet.   For example: 1 -> A 2 -> B 3 -> C ... 26 -> Z 27 -> AA 28 -> AB 题目大意   给定一个非正整数,返回他对应的Excel列标题。 解题思路   题目本质就是将10进制数转换成26进制数,使用A-Z字母表示。 代码实现 算法 实现类 public class Solution { public String convertToTitle(int n) { char[] result = new char[20]; int index = 20; n--; do { result[--index] = (char) ('A' + n % 26); n = n / 26 - 1; } while (n >= 0); return new String(result, index, 20 - index); } } 来源: oschina 链接: https://my.oschina.net/u/2822116/blog/812107

scanf与printf用法详解

ⅰ亾dé卋堺 提交于 2020-03-10 09:10:36
一、scanf家族 1、scanf家族的原型 int scanf(char const *format,...); int fscanf(FILE *stream,char const *format,...); int sscanf(char const *buffer,char const *format,...); 每个原型中的省略号表示一个可变长度的指针列表。从输入转换而来的值逐个存储到这些指针指向的内存位置。由于C的参数传递都是传值调用决定了可变参数都是指针列表。注意:若给的不是指针,而是变量值。scanf将把变量值当做指针,在进行解引用时或者导致程序终止,或者导致不可预料的内存位置的数据被改写。 2、返回值 当格式化字符串format到达末尾或者读取的输入不再匹配格式字符串所指定的类型时,输入就停止,并返回被转换的输入值的数目,若在任何输入都没被转换之前文件就到达尾部则返回EOF。 3、类型的匹配 由于scanf是采用可变参数的机制,所以函数无法验证它们的指针参数是否为正确的类型,所以函数假定它们是正确的,(因此格式字符必须和后面的指针指向的类型保持一致)如果指针参数的类型和输入数据的类型不匹配则结果值就是垃圾。而且邻近的变量也有可能被改写。例如: float a; scanf("%d",&a); //本来a是一个float数据,却用一个整形指针指向变量a。 4

超简单、超容易理解的随机纯字母生成器,传入要生成的随机数的位数即可(大小写字母混合)

喜夏-厌秋 提交于 2020-03-10 08:28:08
代码: import java.util.Random; public class RandomLetterUtil { public static String getRandomCode(int size) { // 传入要生成的随机数的位数 Random random = new Random(); String str = ""; for (int i = 0; i < size; i++) { int key = random.nextInt(2); switch (key) { case 0: char code1 = (char) (random.nextInt(26) + 65); str += code1; break; case 1: char code2 = (char) (random.nextInt(26) + 97); str += code2; break; } } return str; } // 主函数测试 public static void main(String[] args) { int size = 100; String randomCode = getRandomCode(size); // 传入要生成的随机数的位数 System.out.println("随机生成的"+size+"位数为:"+randomCode); } } 效果图

java之char类型转换成int的问题

半世苍凉 提交于 2020-03-10 06:23:02
问题的起源 以下的一段代码是解决从数字0到n之间寻找k出现的次数,例如k=1,n=12,那么k出现的次数就是2次,12中也有1。 代码中间本人是将每一个数字作为一个字符串进行处理,对于多位数将其转换为字符串对应的char数组,在进行if语句判断时,永远出现false。 //寻找数字K出现的次数 public static int digitCounts ( int k , int n ) { int count = 0 ; //进行外运行,将n个数据都进行相对应的判断 for ( int i = 0 ; i <= n ; i ++ ) { //将每个n转换成对应的char数组 char [ ] charres = String . valueOf ( i ) . toCharArray ( ) ; //对于char数组进行遍历,寻找出现k的次数 for ( int j = 0 ; j < charres . length ; j ++ ) { //使用全局变量对相同的k进行累加判断出现的次数 if ( Integer . parseInt ( String . valueOf ( charres [ j ] ) ) == k ) { count ++ ; } } } return count ; } 寻找原因 如果直接创建char数组,在对其值进行输出时会看到数组依旧是数组输入的值

c++语言的输入输出流库

℡╲_俬逩灬. 提交于 2020-03-10 04:57:39
1.c++语言标准输入输出流 <1>控制符的用法 #include <iostream> #include <iomanip> using namespace std; int main(){ int x=30,y=300,z=1024; cout<<"Decimal:"<<x<<" "<<y<<" "<<z<<endl;//按十进制输出 cout<<"Octal:"<<oct<<x<<" "<<y<<" "<<z<<endl;//按八进制输出 cout<<"Hexademical:"<<hex<<x<<" "<<y<<" "<<z<<endl;//按十六进制输出 cout<<setiosflags(ios::uppercase);//设置数值中字母大写输出 cout<<"Hexademical:"<<hex<<x<<" "<<y<<" "<<z<<endl;// cout<<resetiosflags(ios::uppercase);//设置数值中字母小写输出 cout<<"Hexademical:"<<hex<<x<<" "<<y<<" "<<z<<endl;// cout<<"Decimal:"<<dec<<x<<" "<<y<<" "<<z<<endl;//恢复按十进制输出 return 0; }   运行结果: #include <iostream> #include

谈谈性能优化:Mysql 的字符集以及带来的一点存储影响

穿精又带淫゛_ 提交于 2020-03-09 22:43:48
前言 从 Mysql 数据库角度来说,谈到存储就一定离不开字符集,只不过在我们日常开发中统一的 utf8/utf8mb4 编码,使我们常常忽略了字符集的影响,本文仅从字符集的角度来谈谈对 InnoDB 的存储设计的一点影响,以及 Mysql 是怎么兼容各种字符集的。 过一下字符集 Unicode 作为现在通用的字符集,通常采用两个字节表示一个字符,带来的副作用就是,原本采用 ASCII 字符集只需要一个字节的,却变成了 2 个字节,造成了空间浪费,而 UTF-8 编码规则,将 Unicode 编码成 1~4 个字节,ASCII 字符集继续保持了 1 个字节空间,而中文编码成了三个字节,如下图。 对存储带来了什么影响 先说明下 Mysql 中存在两种字符集 utf8 和 utf8mb4,以下例子均以 Mysql 的 utf8(1~3个字节)为例。 采用 utf8 编码的确很不错,但是也带来了一个问题,例如我在 Mysql 中定义了一个定长字符类型 char(5): name type length title char 5 所谓定长字符类型代表我要给 title 分配 5 个字符大小的空间,可是 utf8 每个字符可能是 1~3 个字节,我该分配多少空间合适呢? 理论上为了兼容,最好应该采用 utf8 的最大 3 个字节进行分配,也就是 5*3 = 15 个字节的空间

ORACLE的数据类型

白昼怎懂夜的黑 提交于 2020-03-09 20:11:22
ORACLE的概述: oracle基本上分为:字符串类型,数字类型,日期类型,大对象类型等几种。 1 字符串类型:用单引号引起来的字符序列。 字符串数据类型还可以依据存储空间分为固定长度类型(CHAR/NCHAR) 和可变长度类型(VARCHAR2/NVARCHAR2)两种 . 1.1: CHAR类型 CHAR(size [BYTE | CHAR]) CHAR类型,定长字符串,会用空格填充来达到其最大长度。非NULL的CHAR(12)总是包含12字节信息。 CHAR字段最多 可以存储2,000字节的信息。如果创建表时, 不指定CHAR长度,则默认为1。另外你可以指定它存储字节或字符, 例如 CHAR('字' BYTYE) CHAR('字' CHAR). 一般来说默认是存储字节, 可以查看数据库参数NLS_LENGTH_SEMANTICS的值。 注 :储存类型可以分为:字符和字节,如果要申明为字符,需要在size后面申明, 默认是存储字节 。 ORACLE数据库汉字占用几个字节,要根据ORACLE中字符集编码决定,可以通过查询字符集知道: 注:字符集分为: AL32UTF8和 ZHS16GBK 查看汉字所占的字符和字节数: 所以 ,一个汉字在oracle中占几个字节可以总结为: 当NLS_CHARACTERSET=AL32UTF8时() NLS_LENGTH_SEMANTICS