众所周知,很多开发语言都会用到字符串,而且关于字符串会有很多复杂的处理过程,今天我就谈谈我发现的一个很有意思的类给大家,这个类用起来很方便,它是CStringArray,如果要用它需要加上头文件#include <afxcoll.h>,如果在控制台程序中,则要加在#"stdafx.h"中,否则会出错。
我用的vs2013编译器,现在就将这个一些应用展示出来:
CObArray::Add
将元素添加到数组的末尾;如果需要增加数组
CObArray::Append
将另一个数组追加到该数组;如果需要增加数组
CObArray::Copy 将另一个数组复制到该数组;如果需要增加数组
CObArray::ElementAt 返回对数组中元素指针的临时引用
CObArray::FreeExtra 释放当前上限以上的所有未使用内存
CObArray::GetAt 返回给定索引处的值
CObArray::GetCount 获取该数组中的元素数
CObArray::GetData 允许访问数组中的元素。可以为空
CObArray::GetSize 获取该数组中的元素数
CObArray::GetUpperBound 返回最大的有效索引
CObArray::InsertAt 在指定索引处插入一个元素(或另一个数组中的所有元素)
CObArray::IsEmpty 判断该数组是否为空
CObArray::RemoveAll 移除该数组所有元素
CObArray::RemoveAt 移除指定位置的元素
CObArray::SetAt 设置给定索引的值;数组不允许增长
CObArray::SetAtGrow 设置给定索引的值;如果需要增加数组
CObArray::SetSize 设置该数组中要包含的元素的数量
void print_data(CStringArray &array)
{
int arraysize = array.GetSize();//获取元素个数
//int array1size = array.GetCount();//获取元素个数
for (int i = 0; i < arraysize; i++)
{
printf("%s", array.GetAt(i));
}
}
int _tmain(int argc, _TCHAR* argv[])
{
CStringArray array;
array.Add("beijing|");
array.Add("shanghai|");
array.Add("guangzhou|");
printf("操作前...\n");
printf("第一个数组:");
print_data(array);
printf("\n");
printf("第二个数组:");
CStringArray array1;
array1.Add("nanjing|");
array1.Add("chongqing|");
array1.Add("fuzhou|");
print_data(array1);
printf("\n");
array.Append(array1); //追加数组
//array.Copy(array1); //数组拷贝
printf("操作后...\n");
printf("合并后:");
for (int i = 0; i < array.GetSize(); i++)
{
printf("%s", array.GetAt(i));
}
printf("\n");
//getdata使用,获取特定位置元素
printf("获取指定位置元素:");
CString *pstr = array.GetData();
pstr += 5;
printf("%s", pstr->GetString());
printf("\n");
//获取最大有效索引
printf("本数组最大有效索引:");
int nIndex = array.GetUpperBound();
printf("%d", nIndex);
printf("\n");
//在指定位置插入一个元素
printf("插入特定元素:");
if (array.IsEmpty())//判断数组是否为空
{
return 0;
}
array.InsertAt(1, "xian|");
print_data(array);
printf("\n");
printf("数组元素个数是%d",array.GetCount());
printf("\n");
printf("移除指定位置的元素:");
array.RemoveAt(1);
print_data(array);
printf("\n");
printf("数组元素个数是%d", array.GetCount());
printf("\n");
printf("设置给定索引的值,数组不允许增长:");
array.SetAt(2, "changsha|");
print_data(array);
printf("\n");
printf("数组元素个数是%d", array.GetCount());
printf("\n");
printf("设置给定索引的值,允许增加数组:");
array.SetAtGrow(7,"dalian|");
print_data(array);
printf("\n");
printf("数组元素个数是%d", array.GetCount());
printf("\n");
printf("更改当前数组长度:");
array.SetSize(10);
printf("数组元素个数是%d", array.GetCount());
printf("\n");
printf("设置或获取在指定索引处的元素:");
// CString strElement = array.operator[](2) +"yinchuan";
// printf("指定元素是%s", strElement);
array.operator[](2) = "yinchuan|";
print_data(array);
printf("\n");
printf("数组元素个数是%d", array.GetCount());
printf("\n");
CString strElement = array.operator[](2);
printf("指定元素是%s", strElement);
printf("\n");
printf("返回对数组中的某一元素指针的临时引用:");
CString strEle = array.ElementAt(4);
printf("返回指定元素是%s", strEle);
printf("\n");
return 0;
}
最后再附上一些相关的扩展链接:https://docs.microsoft.com/en-us/previous-versions/visualstudio/visual-studio-6.0/aa246098(v=vs.60)