C与C++风格字符串
C风格字符串:对字符串进行操作的 C 函数定义在头文件<cstring>中;
1. 字符串定义:char* result;
2. 字符串的最后一个字符是null字符('\0'),可以通过这个字符确定字符串的结尾。
3. strlen()返回的是字符串的大小;因此,分配空间的时候,需要比字符串的实际空间大1.
e.g. char* copyString(const char* inString)
{
char *result = new char[strlen(inString)];//BUG! off by one
strcpy(result, inString);
return result;
}
explain: strlen()返回的是字符串的大小,比如"ab",返回的是2。而在new进行分配的时候,需要为'\0'分配一个空间。分配语句要写作,char *result = new char[strlen(inString) + 1];
4. strcpy(a,b):将字符串b的内容赋值给字符串a;a的大小可以大于b,将b放在a的开始的位置;
strcat(a,b):将字符串b拼接到字符串a的现有字符后面;
C++风格字符串:使用C++风格字符串的时候,要将它当做是一个普通的类型,如int,这样反而会避免将string作为一个类来理解所带来的很多问题。
1. 支持<cstring>中许多函数完成的同样操作。
2. 字符串定义:string myString = “hello”;
3. 操作符 = :复制字符串;比如,string newone = original;会将后者复制给前者,不会出现两个变量同样指向一个内存的情况。
4. 可以像int一样使用 == 之类的操作符
5. 可以改变字符串中的某一个字符。 如 string myString = "hello"; mystring[0] = 'l'; 这中操作是允许的。
字符串直接量:字符串没有变量名字,自身表示自身。
1. string literal:字符串直接量:
相关文档:
Q:什么是C风格转换?什么是static_cast, dynamic_cast 以及 reinterpret_cast?区别是什么?为什么要注意?
A:转换的含义是通过改变一个变量的类型为别的类型从而改变该变量的表示方式。为了类型转换一个简单对象为另一个对象你会使用传统的类型转换操作符。比如,为了转换一个类型为doubole的浮点数的指针到整型:
......
二分查找的代码.
int bfind(int* a,int len,int val)
{
int m = len/2;
int l = 0;
int r = len;
while(l!=m && r!= m)
{
if(a[m] > val)
& ......
Data Type Ranges
C/C++ recognizes the types shown in the table below.
Type Name Bytes Other Names Range of Values
&nb ......
在这里贴上最近自己忙活的用turbo C编写的“打字游戏”的源代码:
#include<graphics.h>
#include<conio.h>
#include<STDLIB.h>
#include<dos.h>
#define BK_COLOR BLACK
#define CHAR_COLOR WHITE
#define C_COLOR BLUE
#define num 10
#define SPEED 3000
#define Esc 27
# ......
Java与C++最大的不同的,Java完全是面向对象的,是由类构成的,而C++是由对象与过程组成。
1、路径:
Java包括一个包package,C++没有;
2、引入类
java import.*.*; C++ include ""';
3、预定义,
C++包括预定义,Java不包括
4、结构
C++包括结构,Java只包括类,结构体可以转化为类。
5、类名与文件名
Jav ......