字符串解析--截断字符与内存分配
来源:互联网 发布:映射nas网络驱动器 编辑:程序博客网 时间:2024/05/01 20:53
1. 字符串的截断:
//截断str字符,长度为nMaxLen,strOut输出实际截断的字符
char* InterceptLenth(CString& str,int nMaxLen,CString& strOut)
{
int i= 0;
int last = 0;
char *s = str.GetBuffer(str.GetLength());
char *pre = s;
char *next;
while(i<nMaxLen)
{
next = (char*)CharNext(s); //保存下一个字符
int n = strlen(pre)-strlen(next); //获取这个字符所占用的字节长度
CString str1;
str1= str.Mid(last,n); //取得字符(一个字)
strOut += str1; //累加到strOut
last += n;
s+=n;
pre = next;
i++;
}
return next;
}
2. 文本的剪切:
CString str = "我是一个兵我来字asdf国名";
CString strDelete = "来字";
int index = str.Find(strDelete);//获取子串的位置,从开始查找.
str.Delete(index, strDelete.GetAllocLength());//删除子串
MessageBox( str );
另外,在编程的时候,经常使用NULL和_T("").但不是每个人都理解他们的真正含义的.
string str1 = NULL; str引用为空
string str2 = ""; str应用一个空串
// 也就是null没有分配空间,""分配了空间,因此str1还不是一个实例化的对象,儿str2已经实例化。
//
// 注意因为null不是对象,""是对象。所以比较的时候必须是 if(str1==null){....}和if(str2.equals("")){}
//
// 对象用equals比较,null用等号比较。因此,如果str1=null;下面的写法错误:
if( str1.equals("")||str1==null){//如果str1没有值,则....
//。。。。
}
//正确的写法是
if(str1==null||str1.equals("")){ //先判断是不是对象,如果是,再判断是不是空字符串
//...
}
- 字符串解析--截断字符与内存分配
- NSDate转NSString遇到异常字符时字符串被截断JSON解析失败
- NSDate转NSString遇到异常字符时字符串被截断JSON解析失败(二)
- 关于内存分配与释放的解析
- 字符指针与字符数组内存分配的区别
- 字符数组 与 字符指针(使用前分配内存)
- 字符常量内存分配
- asp request0x00字符截断与利用
- Troubleshooting:Shapefile 乱码与字符截断问题
- Shapefile 乱码与字符截断问题
- 解析java内存分配
- 内存分配解析
- JAVA内存分配解析
- java内存分配解析
- Java字符串内存分配
- JVM内存分配过程与原理解析(雷惊风)
- C#中字符串的内存分配与驻留池
- C#中字符串的内存分配与驻留池
- Week 9, SOC
- Google搜索引擎工作流程(简单介绍)
- 重装系统
- linux共享中断的处理
- 数组中最大和的子数组
- 字符串解析--截断字符与内存分配
- 好看的PHP注释
- Linux 内核中的 GCC 特性
- 细说Cookies
- Java is Pass-by-Value Java都是值传递
- BeginPaint&&GetDc区别
- 细说Cache
- Android返回键与Home键区别
- Android中的Intent详细讲解