[C++对象模型][4]指针与字符串
2009-02-22 16:56
337 查看
开始之前必须明确strlen的含义,原型为size_t strlen( char *str ); strlen返回字符串的长度,即null(\0)之前的字符的数量。
一 char* 与 char []
实例加注释:
void TestStrFunction()
{
char string[11];
char *str1 = "123456789"; // 123456789\0
strcpy(string, str1);
strcat(string,"A"); //123456789A\0
int r = strcmp(string,"123456789B"); // 123456789A\0 < 123456789B\0
}
void TestStrFunction2()
{
int ch = 'r';
char string[] = "The quick # brown dog # jumps over # the lazy fox";
char *pdest = NULL;
pdest = strchr( string, ch );
pdest = NULL;
char * str = "dog";
pdest = strstr(string,str);
pdest = NULL;
char delims[] = "#";
pdest = strtok( string, delims );
while( pdest != NULL )
{
pdest = strtok( NULL, delims );
}
}
总结:
1)以mem开始的函数用来bytes的操作,所以需要指定长度,但是以str用来操作以\0结尾的字符串,不需要指定长度。
2)对于unicode,相应的字符串操作函数前缀为wcs,例如wcscpy,wcscat,wcscmp,wcschr,wcsstr,wcstok等。
3)在vc中还提供了有安全检测的字符串函数后缀_s,例如strcpy_s,strcat_s,strcmp_s,wcscpy_s,wcscat_s,wcscmp_s等。
4)char*如果指向常量区,不能被修改,且此char*不需要delete。例如 char* pStr = "ABC";。
三 std::string和std::wstring使用相当简单哦!
四 完!
一 char* 与 char []
实例加注释:
void TestStrFunction()
{
char string[11];
char *str1 = "123456789"; // 123456789\0
strcpy(string, str1);
strcat(string,"A"); //123456789A\0
int r = strcmp(string,"123456789B"); // 123456789A\0 < 123456789B\0
}
void TestStrFunction2()
{
int ch = 'r';
char string[] = "The quick # brown dog # jumps over # the lazy fox";
char *pdest = NULL;
pdest = strchr( string, ch );
pdest = NULL;
char * str = "dog";
pdest = strstr(string,str);
pdest = NULL;
char delims[] = "#";
pdest = strtok( string, delims );
while( pdest != NULL )
{
pdest = strtok( NULL, delims );
}
}
总结:
1)以mem开始的函数用来bytes的操作,所以需要指定长度,但是以str用来操作以\0结尾的字符串,不需要指定长度。
2)对于unicode,相应的字符串操作函数前缀为wcs,例如wcscpy,wcscat,wcscmp,wcschr,wcsstr,wcstok等。
3)在vc中还提供了有安全检测的字符串函数后缀_s,例如strcpy_s,strcat_s,strcmp_s,wcscpy_s,wcscat_s,wcscmp_s等。
4)char*如果指向常量区,不能被修改,且此char*不需要delete。例如 char* pStr = "ABC";。
三 std::string和std::wstring使用相当简单哦!
四 完!
相关文章推荐
- [C++对象模型][4]指针与字符串
- [C++对象模型][4]指针与字符串
- [C++对象模型][4]指针与字符串
- 从零开始学C++之虚函数与多态(一):虚函数表指针、虚析构函数、object slicing与虚函数、C++对象模型图 .
- C++对象模型——指向Data Members的指针(Pointer to Data Members)(第三章)
- 深入探索C++对象模型--指针类型 & 多态机制
- [C++对象模型][2]指针与引用
- C++对象模型2--指针cout结果
- 深入探索c++对象模型中Data Members的指针
- 深度探索C++对象模型-指向Data Members的指针
- c++对象模型笔记:指针类型转换
- C++对象模型之成员函数的指针
- 从零开始学C++之虚函数与多态(一):虚函数表指针、虚析构函数、object slicing与虚函数、C++对象模型图
- 从零开始学C++之虚函数与多态(一):虚函数表指针、虚析构函数、object slicing与虚函数、C++对象模型图
- 虚函数与多态(一):虚函数表指针、虚析构函数、object slicing与虚函数、C++对象模型图
- C++对象内存模型2 (虚函数,虚指针,虚函数表)
- [C++对象模型][2]指针与引用
- C++对象内存模型2 (虚函数,虚指针,虚函数表)
- 深入探索C++对象模型之指向成员函数的指针
- C++对象模型——指向Member Function的指针 (Pointer-to-Member Functions)(第四章)