char函数

string STL类库学习

徘徊边缘 提交于 2019-12-05 03:00:35
string STL类库学习 STL string类提供了强大的功能,使得许多相对复杂的编程内容用简单的语句就可以实现了。并且,它相对于char来说,减少了好几种错误 数据越界 使用未初始化或者被赋予错误值的指针访问数组元素 释放char原先的申请空间后,还保留有没有处理的“悬挂指针” 基于以上的一些特点,特意去了解一下STL string里面常用的几种函数 sting 类存储再头文件 #include<string> 里面,并且属于std命名空间里面的内容。我们来了解他的构造函数 构造函数有: 函数 作用 string(const char * s) 用字符串s去初始化 string(int n,char c) 用n个字符去初始化 多个string之间的链接有: 函数 作用 string &operator+=(const string &s) 把字符串s连接到当前字符串的结尾 string &append(const char * s) 把c类型字符串s连接到当前字符串结尾 string &append(const char * s,int n) 把c类型字符串s的前n个字符连接到当前字符串结尾 string &append(const string &s) 把字符串s连接到当前字符串的结尾 string &append(const string &s,int pos,int

每日一题

白昼怎懂夜的黑 提交于 2019-12-05 02:53:46
目录 每日一题: 查看PEP8规范: 字符编码 数据库表映射 char、varchar和text的区别: 每日一题: 查看PEP8规范: 查看PEP8规范: 1 缩进与换行 每级缩进使用四个空格 2 限制每行的最大长度为79个字符 3 空行 顶层函数和类之间使用两个空行 类的方法之间用一个空行 在函数中使用空行表示不同逻辑段落 4 导入位于文件的顶部 5 避免多余空格 6 注释 注释要保持与时俱进 一句后面两个空格 跟注释 7 命名规范 除了正常的命名规范外 不要使用 大小写的L 大写的O 作为变量名 类名首字母大写 内部类 加上前导下划线 函数名应该小写 增强可读性可以使用下划线分割 8 其他 别用 ‘==‘ 进行布尔值 和 True 或者 False 的比较 应该用 is 字符编码 字符编码发展史,以及你所知道的字符编码码,每个字符编码表的在表示数字和字符关系的时候区别?? ascii 是最早美国用的标准信息交换码,把所有的字母的大小写,各种符号用 二进制来表示,共有256中,加入些拉丁文等字符,1bytes代表一个字符, Unicode是为了统一世界各国语言的不用,统一用2个bytes代表一个字符,可以表达2**16=65556个,称为万国语言,特点:速度快,但浪费空间, 可以用在内存处理中,兼容了utf-8,gbk,ASCII, utf-8 为了改变Unicode的这种缺点

用指针形式实现strstr函数

巧了我就是萌 提交于 2019-12-05 02:27:33
char * mystrstr(char *dest,char * src) { char *p=null; char * temp=src; while(*dest)//只要不为'\0'就行 { p=dest;//进行多次赋值操作 while(*dest==*temp) { dest++;//指向下一个值的地址 temp++; } if(!*temp)//相当于if(*temp=='\0') return p; else temp=src;//重置了目标字符串 dest=p;//重置字符串,并指向下一个 dest++ } return NULL; } int main() { char *p = mystrstr("helllllo", "lllllo"); printf("%s\n", p); system("pause"); return EXIT_SUCCESS; } 来源: https://www.cnblogs.com/mingstatebird/p/11897752.html

函数指针地址

 ̄綄美尐妖づ 提交于 2019-12-05 01:52:53
/*strlen函数:返回字符串s长度*/ int strlen(char *s) { int n; for(n=0;*s!='\0';s++) n++; return n; } #define ALLOCSIZE 10000 /*可用空间大小*/ static char allocbuf(ALLOCSIZE); /*alloc使用的存储区*/ static char *allocp=allocbuf; /*下一个空闲位置*/ char *alloc(int n) /*返回指向n个字符的指针*/ { if(allocbuf+ALLOCSIZE-allocp>=n) /*有足够的空闲空间*/ { allocp+=n; return allocp-n; /*分配前的指针p*/ }else /*空闲空间不够*/ return0; } void afree(char *p) /*释放p指向的存储区*/ { if(p>=allocbuf&&p<allocbuf+ALLOCSIZE) allocp=p; } 来源: https://www.cnblogs.com/TheFly/p/11896042.html

C++类的定义和对象

时光总嘲笑我的痴心妄想 提交于 2019-12-05 01:51:46
C++类的定义和对象 类的成员变量称为类的属性(Property),将类的成员函数称为类的方法(Method)。在面向对象的编程语言中,经常把函数(Function)称为方法(Method)。 类的定义 class Student{ public: //成员变量 char *name; int age; float score; void say(){ cout<<name<<age<<score<<endl; } }; 类只是一个模板(Template),编译后不占用内存空间. class C++ 中新增的关键字,用来定义类。 成员变量和成员函数,它们统称为类的成员(Member) 创建对象: Student Lilei; //创建对象 Student 是类名, liLei 是对象名。和使用基本类型定义变量的形式类似, 从这个角度考虑,我们可以把 Student 看做一种新的数据类型,把 liLei 看做一个变量。 在创建对象时,class 关键字可要可不要 class Student LiLei; //正确 Student LiLei; //同样正确 还可以创建对象数组: Student allStu[100]; 使用对象指针: Student stu; //pStu 是一个指针,它指向 Student 类型的数据,通过 Student 创建出来的对象 Student

从0开始自制计算器!

夙愿已清 提交于 2019-12-04 23:35:40
目录 1.概述 2.新建工程 2.界面 (1) 按键 a.添加一个Grid Layout,调整好大小. b.拖入Push Button作为按键,sizePolicy属性那里水平和垂直属性都选择Expanding. c.调整好颜色,设置styleSheet与字体 d.复制制作好的button,布好局 e.改内容 f.整体修改大小,同时加上间隔 (2) 输出框 a.添加QLineEdit b.调整好大小,设置好背景颜色 c.设置字体,只读,对齐 (3) 标题栏 a.新建Horizontal Layout b.添加细节 (4)整体处理 a.标题栏 b.调整整体大小,同时添加透明度 3.事件处理 (1)光标事件 A.标题栏 B.按键 (2)键盘事件 A.添加阴影 B.添加输出 4.整体细节再处理 (1)淡入效果 (2)设置固定尺寸 (3)淡出效果 5.表达式处理 (1)判断 a.去除所有空格 b.分类判断 c.加0 (2)计算 a.calc辅助类 b.计算部分 c.测试 6.整合 (1)设置界面的调用进程,并获取输出结果 (2)修改一些细节地方 a.鼠标键盘修改事件 b.exe中设置数字的格式 c.设置错误提示 d.可以考虑把错误处理整合过来 7.打包发布 (1) 首先去下载Enigma Virtual Box (2) 添加环境变量 (3) 打包库文件 (4) 生成单个exe (5) 测试

C++的源文件和头文件

╄→гoц情女王★ 提交于 2019-12-04 23:27:05
首先以一个类的定义作为例子 在名称为student.h的头文件中 #include <iostream> using namespace std; #include <string.h> class Student { public: //外部接口 void input(char* pid,char* pname,int a,float s); void modify(float s) {score=s;} //成员函数体放在类中自动成为内联函数 void display() ; private: //私有成员 char* id; char* name; int age; float score; }; 在student.cpp中实student类的成员函数 #include "student.h" //包含类定义所在的头文件 void Student::input(char* pid,char* pname,int a,float s) { //成员函数的实现 id=new char[strlen(pid)+1]; strcpy(id,pid); name=new char[strlen(pname)+1]; strcpy(name,pname); age=a; score=s; } void Student::display() { cout<<" id:"<<id<<endl

编写一个求字符串长度的函数strlen(),再用strlen()函数编写一个函数reverse(s)的倒序递归程序,使字符串s逆序-简单

≡放荡痞女 提交于 2019-12-04 23:25:52
源程序: #include < iostream > #include < string > using namespace std; int strlen(char *str) {   int len = 0;   while (str[len] != '\0')   {     len++;   }   return len; } void revers(char *b) {   char c;   int j, len;   len = strlen(b);   j = len / 2 - 1;   while (j >= 0)   {     c = *(b + j);     *(b + j) = *(b + len - j - 1);     *(b + len - j - 1) = c;     j--;   }   b[len] = '\0'; } void main() {   cin.get();   char *s;   char str[10];   cout << "输入一个字符串:";   s = str;   cin.getline(s, 10);   //char str[]={"1234567890"};   cout << str << "----的长度:" << strlen(str) << endl;   cout << str <<

Java与C++Socket通讯注意

醉酒当歌 提交于 2019-12-04 22:14:56
c++与java进行socket通信时注意事项 因为java发送的都是网络字节序(big-endium),而c++是主机字节序(little-endium),所以当消息中有整型,浮点型(应尽量避免使用)的时候需要用htonl,htons,ntohl,ntohs等函数转换一下,字符串由于是单字节排序的不需要转换,但应注意c++字符串是以'/0'作为结束符的,如果找不到'/0'可能会出现一些乱码,所以接收的时候可以分配一个length+1的buffer用来接收消息. 举例:c++ server, java client,假设开发的是c++ server,那么: java client--------->c++ server: c++ server需要调用ntohs,ntohl c++ server--------->java client: c++ server需要调用htons,htonl 至于浮点型可以使用以下的函数转换: float tcp_htonf(float f) { unsigned char *p, p0, p1; if(htons(1) ==1) return f; p =(unsigned char *)&f; p0 =p[0]; p1 =p[1]; p[0] =p[3]; p[3] =p0; p[1] =p[2]; p[2] =p1; return f; }

C语言结构体用法

半城伤御伤魂 提交于 2019-12-04 22:01:48
结构体(struct) 结构体是由基本数据类型构成的、并用一个标识符来命名的各种变量的组合。 结构体中可以使用不同的数据类型。 1. 结构体说明和结构体变量定义 在Turbo C中, 结构体也是一种数据类型, 可以使用结构体变量, 因此, 像其它类型的变量一样, 在使用结构体变量时要先对其定义。  定义结构体变量的一般格式为: struct 结构体名 { 类型 变量名; 类型 变量名; ... } 结构体变量; 结构体名是结构体的标识符不是变量名。 构成结构体的每一个类型变量称为结构体成员, 它象数组的元素一样, 但数组中元素是以下标来访问的, 而结构体是按变量名字来访问成员的。 下面举一个例子来说明怎样定义结构体变量。 struct string { char name[8]; int age; char sex[2]; char depart[20]; float wage1, wage2, wage3, wage4, wage5; } person; 这个例子定义了一个结构体名为string的结构体变量person, 如果省略变量名 person, 则变成对结构体的说明。用已说明的结构体名也可定义结构体变量。这样定义时上例变成: struct string { char name[8]; int age; char sex[2]; char depart[20]; float