您的位置:首页 > 编程语言 > C语言/C++

[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使用相当简单哦!

四 完!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: