二.string类函数的使用
1.将string类字符串转化为c风格字符串:ch=str.c_str();
2.用于比较两个string类字符串:str1.compare(str2);
3.查找string的某个元素:find(); find_first_of(); find_last_not_of(); rfind();
4.检测string类字符串是否非空:str.empty();
5.获取string()的长度:strr.length();
6.提取string字符串的字串:str2=str1.sub_str(int pos,int len);//pos为起始位置,len为字串长度
7.string类字符串和c风格字符串相加:str.append(ch);//c风格与string:strcat(ch,str.c_str());
8.string类字符串的替换:str1.replace(int pos,int len,str2);
三.指针使用中的注意要点
1.指针的初始化:“=”右操作数必须是内存中合法取得的数据地址;
指针赋值:“=”左操作数可以是*p(改变的是p指向的地址中存放的数据),也可以是p(改变的是p指向的地址);
2.数组指针与二维数组:在定义二维数组与数组指针时,应该如下赋值:
int p[5][6];
int (*pp)[6];
pp=p;
//或者如下
int (*pp)[6]=p;
3,数组指针与二维数组:
int p[5][6];
int *pp[5];
for(i=0;i<5,i++)
pp[i]=p[i];
4.避免程序中出现野指针:野指针可能在以下操作中出现:
指针创建时未初始化:
int *a;
int*a=NULL;//最好让其指向空地址
在使用free()或者delete()释放动态空间时没有释放指针:
int*a=new int[5];
delete[]a;
//最好有如下操作
a=NULL;
指针创建与操作不在同一作用域内
5.释放动态空间时,要注意delete要指向动态分配空间的首地址
#include "stdafx.h"
#include<iostream>
using namespace std;
int main(){
int *aa=new int[10];
int *copy_aa=aa;
cout<<oct;
for (int i = 0; i < 10; i++){
*aa=i;
cout<<aa<<" "<<*aa<<endl;
aa++;}
cout<<endl<<"当前指针指向内存的地址为:"<<aa<<endl;
aa=copy_aa;//必须将指针指向动态分配的空间的首地址!!!!!!!
delete[]aa;
aa=NULL;
return 0;}
2020.2.5