
C++
vvc223c
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
编程查找两个字符串的最大公共子串
char * commonstr(char * str1, char * str2){ if (str1 == nullptr || str2 == nullptr) { return nullptr; } char * shortstr, *longstr; char * substr; if (strlen(str1) <= strlen(str2)) { sho...原创 2020-01-02 13:46:21 · 426 阅读 · 1 评论 -
编程实现strcmp函数
int mystcmp(const char * src, const char * dst){ int result = 0; while (!(result = *(unsigned char *)src - *(unsigned char *)dst) && *dst)//循环比较是否相等 {//如果相等 result = 0,取反之后继续循环,如果不等 取反之后循环...原创 2020-01-02 13:23:59 · 561 阅读 · 0 评论 -
编程判断字符串是否为回文
bool isRevStr(char * str){ if (str == nullptr) { return false; } int len = strlen(str); for (int i = 0; i < len / 2; i++) { if (*(str + i) != *(str + len - i - 1)) { return false; ...原创 2020-01-02 11:59:38 · 383 阅读 · 0 评论 -
编程实现字符串各单词的翻转
void ReverseStr(char * src){ char * start = src, *end = src, *ptr = src; while (*ptr++ != '\0') { if (*ptr == ' ' || *ptr == '\0')//找到一个单词 { end = ptr - 1;//end指向单词末尾 while (start < e...原创 2020-01-02 11:40:50 · 210 阅读 · 0 评论 -
编程实现字符串中子串的查找
const char* StrStr(const char *src, const char * sub){ if (src == nullptr || sub == nullptr) { return src; } const char * bp; const char * sp; while (*src) { bp = src; sp = sub; do ...原创 2020-01-02 11:28:31 · 434 阅读 · 0 评论 -
编程实现strcpy函数
char * strcpy1(char * strDest, const char* strsrc){ if (strDest == nullptr || strsrc == nullptr) { return nullptr; } char * strDestCopy = strDest; while ((*strDest++ = *strsrc++) != '\0'); re...原创 2020-01-02 11:13:05 · 422 阅读 · 0 评论 -
编写自己的strlen函数实现计算字符串的长度
int strlen1(const char * src){ assert(src != nullptr); const char * temp = src; while (*src++ != '\0'); return(src - temp - 1);}原创 2020-01-02 11:08:20 · 1825 阅读 · 0 评论 -
sizeof 与strlen区别
区别:1.sizeof是操作符,strlen是函数2.sizeof可以用类型做参数,strlen只能使用char*做参数,且必须是以’\0’结尾的3.数组做sizeof的参数不退化,传递给strlen退化为指针4.大部分编译程序在编译的时候sizeof就被计算了,也就是sizeof(x)可以用来定义数组维度的原因.strlen的结果要在运行的时候才能计算出来,它用来计算字符串的长度,si...原创 2020-01-01 13:14:28 · 212 阅读 · 0 评论 -
static全局变量与普通的全局变量有什么区别?
全局变量本身是静态存储方式,静态全局变量也是静态存储方式。 两者在存储方式上没有不同。区别在于:非静态全局变量的作用域是整个源程序,一个非静态的全局变量在各个源文件中都是有效的.静态全局变量限制作用域,仅仅在定义该变量的源文件中有效,同一源程序的其他源文件不能使用它.由于静态全局变量的作用域局限于一个源文件内,因此可以避免在其他源文件中引起错误static函数与普通函数的作用域不同.sta...原创 2020-01-01 12:53:13 · 3351 阅读 · 0 评论 -
C/C++宏定义中的#和##使用方法
先看一个例子:#define STR(s) #s#define CONS(a,b) (int)(a##e##b)int main(){ printf(STR(Hello)); printf("\n"); printf("%d\n",CONS(2,3)); }在这个程序中使用#把宏参数变成字符串,##连接宏参数,CONS(a,b)将参数a与b按aeb连接起来,表示整型值a...原创 2020-01-01 11:41:58 · 241 阅读 · 0 评论 -
C/C++中头文件引用中尖括号和引号的区别
<>表明这个文件是一个工程或标准文件,比如:#include <iostream>查找这种头文件的过程中会首先检查预定义的目录,我们可以通过设置搜索路径环境变量或命令行选项来修改这些目录…""表明该文件是用户提供的头文件,查找该文件时将从当前文件目录(或文件名指定的其他目录)中寻找文件,然后在标准位置寻找文件...原创 2020-01-01 11:00:53 · 405 阅读 · 0 评论 -
C++ Allocator使用方法
一般情况下,内存分配和对象构造组合一起可能会导致不必要的浪费,比如:string* const p = new string[n];//构造n个空stringstring s;string *q = p;while(cin >> s && q != p+n) *q++ =s;//赋予*q一个新值const size_t size = q-p;//记住我们读取...原创 2019-12-12 17:36:37 · 1162 阅读 · 0 评论 -
C++ 中 new和 operator new的区别
参考:https://www.cnblogs.com/raichen/p/5808766.htmlnew运算符和operator new()new:指我们在C++里通常用到的运算符,比如A* a = new A; 对于new来说,有new和::new之分,前者位于stdoperator new():指对new的重载形式,它是一个函数,并不是运算符。对于operator new来说,分为全局...原创 2019-12-12 17:10:08 · 754 阅读 · 0 评论 -
C++虚函数的工作原理
通常,编译器处理虚函数的方法是:给每一个对象添加一个隐藏成员,这个隐藏成员中保存了指向函数地址数组的指针。这种数组叫做虚函数表,虚函数表中存储了为类对象进行声明的虚函数的地址。以上面两个类为例子,B继承自A基类对象包含一个指针,指向基类中所有虚函数的地址表。派生类对象将包含一个指向独立地址表的指针,如果派生类提供了虚函数的新定义,该虚函数表将保存新函数的地址.反之,则保存该函数原始版本...原创 2019-10-31 14:41:01 · 219 阅读 · 0 评论 -
C++定位new运算符
定位new运算符,让你能够指定要使用的位置。用法如下:#include<iostream>#include <new>using namespace std;char buffer[500];int main(){ int * p1, *p2; p1 = new int[20]; p2 = new (buffer)int[20]; for (int...原创 2019-10-29 14:47:52 · 652 阅读 · 0 评论 -
C++枚举的用法
C++枚举类型C++枚举包含两种枚举类型:限定作用域的枚举类型,不限定作用域的枚举类型.C++枚举类型属于字面值常量类型………限定作用域的枚举类型定义限定作用域的枚举类型的一般形式是:enum class name比如:在限定作用域的枚举类型中,枚举成员的名字遵循常规的作用域准则,并且在枚举类型的作用域外是不可以访问的。必须显示地访问枚举成员.不限定作用域的枚举类型不...原创 2019-10-27 16:30:04 · 1717 阅读 · 0 评论 -
c++中auto和decltype的区别
autoc++11中引入了auto类型说明符,用它就能让编译器替我们去分析表达式所属的类型,auto让编译器通过初始化值来推算变量的类型。如:auto item = vall + val2;此处编译器将根据vall和val2相加的结果来推断item的类型,假如vall和val2的类型是double,则item的类型就是double.auto一般会忽略顶层const,同时底层const则会保...原创 2019-04-10 14:10:43 · 426 阅读 · 0 评论 -
c++中引用和指针的主要区别
引用 c+11中新增了一种引用:“右值引用(ravlue reference )”,本本章用的是传统上的"引用" 也就是"左值引用"。 引用其实就是为对象起了另外一个名字,引用不是一个对象,它只是为一个已经存在的对象所起的另外一个名字。 引用必须在定义时赋初值,定义了一个引用之后,就相当于引用绑定到内存中的某个对象。对其进行的所有操作都是在与之绑定的对象上进行的由于引用不是...原创 2019-04-10 13:28:46 · 187 阅读 · 0 评论