一、数组操作
1、数组初始化
1-1一维数组初始化:
标准方式一: int value[100]; // value[i]的值不定,没有初始化
标准方式二: int value[100] = {1,2}; // value[0]和value[1]的值分别为1和2,而没有定义的value[i>1]
指针方式: int* value = new int[n]; // 未初始化
delete []value; // 一定不能忘了删除数组空间
1-2二维数组初始化:
标准方式一: int value[9][9]; // value[i][j]的值不定,没有初始化
标准方式二: int value[9][9] = {{1,1},{2}}; //value[0][0,1]和value[1][0]的值初始化,其他初始化为0
指针方式一: int (*value)[n] = new int[m][n];
delete []value; // n必须为常量,调用直观。未初始化
2、数组拷贝
头文件#include<string.h>
int a[10]={34,56,4,10,77,51,93,30,5,52};
int b[10];
memcpy(b,a,sizeof(b));
3、数组赋值
头文件#include<string.h>
int a[50];
memset(a,0,sizeof(a));
4、数组排序
引入头文件#include<algorithm>
int a[] = { 8, 4, 5, 6, 8, 0, 11 };
sort(a, a + 7);
5、数组长度
sizeof(array)/sizeof(array[0]);
二、字符串操作
C++:
头文件#include<string>
string str;
1. 字符串长度
len = str.length();
len = str.size();
2. 字符串比较
可以直接比较
也可以:
str1.compare(str2);
str1.compare(pos1,len1,str2,pos2,len2); 值为负,0 ,正。
nops 长度到完。
3. 附加
str1 += str2;
或
str1.append(str2);
str1.append(str2.pos2,len2);
4. 字符串提取
str2 = str1.substr();
str2 = str1.substr(pos1);
str2 = str1.substr(pos1,len1);
5. 字符串搜索
where = str1.find(str2);
where = str1.find(str2,pos1); pos1是从str1的第几位开始。
where = str1.rfind(str2); 从后往前搜。
6. 插入字符串
不是赋值语句。
str1.insert(pos1,str2);
str1.insert(pos1,str2,pos2,len2);
str1.insert(pos1,numchar,char); numchar是插入次数,char是要插入的字符。
7. 替换字符串
str1.replace(pos1,str2);
str1.replace(pos1,str2,pos2,len2);
8. 删除字符串
str.erase(pos,len)
str.clear();
9. 交换字符串
swap(str1,str2);