VC CString用法整理

VC:CString用法整理2009-09-03 14:281.CString::IsEmptyBOOL IsEmpty( ) const;返回值:如果CString 对象的长度为0,则返回非零值;否则返回0。

说明:此成员函数用来测试一个CString 对象是否是空的。

示例:下面的例子说明了如何使用CString::IsEmpty。

// CString::IsEmpty 示例CString s;ASSERT( s.IsEmpty() );请参阅CString::GetLength2.CString::LeftCString Left( int nCount ) const;throw( CMemoryException );返回值:返回的字符串是前nCount个字符。

示例:CString s( _T("abcdef") );ASSERT( s.Left(2) == _T("ab") );3.CString::LoadStringBOOL LoadString( UINT nID );throw( CMemoryException );返回值:如果加载资源成功则返回非零值;否则返回0。

nID 一个Windows 字符串资源ID。

说明:此成员函数用来读取一个由nID 标识的Windows 字符串资源,并放入一个已有CString 对象中。

示例:下面的例子说明了如何使用CString::LoadString。

// CString::LoadString 示例#define IDS_FILENOTFOUND 1CString s;if (! s.LoadString( IDS_FILENOTFOUND ))4.CString::MakeLowervoid MakeLower( ); //改变字符的小写5.CString::MakeReversevoid MakeReverse( ); //字符倒置6.CString::MakeUppervoid MakeUpper( ); //改变字符的大写7.CString::MidCString Mid( int nFirst ) const;CString Mid( int nFirst, int nCount ) const;nCount代表要提取的字符数, nFirst代表要提取的开始索引位置示例:CString s( _T("abcdef") );ASSERT( s.Mid( 2, 3 ) == _T("cde") );8.CString::ReleaseBuffervoid ReleaseBuffer( int nNewLength = -1 );参数:nNewLength此字符串的以字符数表示的新长度,不计算结尾的空字符。

如果这个字符串是以空字符结尾的,则参数的缺省值-1 将把CString 的大小设置为字符串的当前长度。

说明:使用ReleaseBuffer 来结束对由GetBuffer 分配的缓冲区的使用。

如果你知道缓冲区中的字符串是以空字符结尾的,则可以省略nNewLength 参数。

如果字符串不是以空字符结尾的,则可以使用nNewLength 指定字符串的长度。

在调用ReleaseBuffer 或其它CString 操作之后,由GetBuffer 返回的地址是无效的。

示例:下面的例子说明了如何使用CString::ReleaseBuffer。

// CString::ReleaseBuffer 示例CString s;s = "abc";LPTSTR p = s.GetBuffer( 1024 );strcpy(p, "abc"); // 直接使用该缓冲区ASSERT( s.GetLength() == 3 ); // 字符串长度= 3s.ReleaseBuffer(); // 释放多余的内存,现在p 无效。

ASSERT( s.GetLength() == 3 ); // 长度仍然是39.CString::Removeint CString::Remove ( TCHAR ch );返回值:返回从字符串中移走的字符数。

如果字符串没有改变则返回零。

参数:ch 要从一个字符串中移走的字符。

说明:此成员函数用来将ch 实例从字符串中移走。

与这个字符的比较是区分大小写的。

示例:// 从一个句子中移走小写字母'c':CString str (“This is a test.”);int n = str.Remove( 't' );ASSERT( n == 2 );ASSERT( str ==“This is a es. ” );10.CString::Replaceint Replace( TCHAR chOld, TCHAR chNew );int Replace( LPCTSTR lpszOld, LPCTSTR lpszNew );返回值:返回被替换的字符数。

如果这个字符串没有改变则返回零。

参数:chOld 要被chNew 替换的字符。

chNew 要用来替换chOld 的字符。

lpszOld 一个指向字符串的指针,该字符串包含了要被lpszNew 替换的字符。

LpszNew 一个指向字符串的指针,该字符串包含了要用来替换lpszOld 的字符。

说明:此成员函数用一个字符替换另一个字符。

函数的第一个原形在字符串中用chNew 现场替换chOld。

函数的第二个原形用lpszNew 指定的字符串替换lpszOld 指定的子串。

在替换之后,该字符串有可能增长或缩短;那是因为lpszNew 和lpszOld 的长度不需要是相等的。

两种版本形式都进行区分大小写的匹配。

示例:// 第一个例子,old 和new 具有相同的长度。

CString strZap( “C - -” );int n = strZap.Replace('-', '+' );ASSERT( n == 2 );ASSERT(strZap == “C++” );// 第二个例子,old 和new 具有不同的长度。

CString strBang( “Everybody likes ice hockey” );n = strBang.Replace( “hockey”, “golf” );ASSERT( n ==1 );n = strBang.Replace ( “likes” , “plays” );ASSERT( n == 1 );n = strBang.Replace( “ice”, NUL L );ASSERT( n == 1 );ASSERT( strBang == “Everybody plays golg” );// 注意,现在在你的句子中有了一个额外的空格。

// 要移走这个额外的空格,可以将它包括在要被替换的字符串中,例如,“ice ”。

11.CString::ReverseFindint ReverseFind( TCHAR ch ) const;返回值: 返回此CString 对象中与要求的字符匹配的最后一个字符的索引;如果没有找到需要的字符则返回-1。

参数: ch 要搜索的字符。

说明:此成员函数在此CString 对象中搜索与一个子串匹配的最后一个字符。

此函数类似于运行时函数strrchr。

示例:// CString::ReverseFind 示例CString s( "abcabc" );ASSERT( s.ReverseFind( 'b' ) == 4 );12.CString::RightCString Right( int nCount ) const;throw( CMemoryException );返回值:返回的字符串是最后nCount个字符。

CString s( _T("abcdef") );ASSERT( s.Right(2) == _T("ef") );13.CString:: SetAtvoid SetAt( int nIndex, TCHAR ch );说明:可以把字符串理解为一个数组,SetAt类似于[].注意nIndex的范围,如果不合适会有调试错误。

Ch 更替字符, 把nIndex位置上的字符变成ch示例:CString s( "abc" );s.MakeReverse();ASSERT( s == "cba" );14.CString::TrimLeftvoid TrimLeft( );void CString::TrimLeft( TCHAR chTarget );说明:如果没有参数,从左删除字符(\n\t空格等),至到遇到一个非此类字符. 当然你也可以指定删除那些字符. 如果指定的参数是字符串,那么遇上其中的一个字符就删除.\n 换行符\t TAB字符示例1:CString str = "\n\t a";str.TrimLeft();str为“a”;示例2:CString str = "abbcadbabcadb ";str.TrimLeft("ab");结果"cadbabcadb "str.TrimLeft("ac");结果"bcadbabcadb "15.CString::TrimRightvoid TrimRight( );void CString::TrimRight( TCHAR chTarget );void CString::TrimRight( LPCTSTR lpszTargets );说明:用法类似于上面。

16.CString::Compareint Compare( LPCTSTR lpsz ) const;返回值:字符串一样返回0,小于lpsz 返回-1,大于lpsz 返回1, 区分大小字符示例:CString s1( "abc" );CString s2( "abd" );ASSERT( pare( s2 ) == -1 );ASSERT( pare( "abe" ) == -117.CString::CompareNoCaseint CompareNoCase( LPCTSTR lpsz ) const;返回值:字符串一样返回0,小于lpsz 返回-1,大于lpsz 返回1,不区分大小字符18.CString::Collateint Collate( LPCTSTR lpsz ) const;同CString::Compare19.CString::CollateNoCaseint CollateNocase( LPCTSTR lpsz ) const;同CString::CompareNoCase20.CString::CString //构造函数CString( );CString( const CString& stringSrc );CString( TCHAR ch, int nRepeat = 1 );CString( LPCTSTR lpch, int nLength );CString( const unsigned char* psz );CString( LPCWSTR lpsz );CString( LPCSTR lpsz );示例:CString s1;CString s2( "cat" );CString s3 = s2;CString s4( s2 + " " + s3 );CString s5( 'x' ); // s5 = "x"CString s6( 'x', 6 ); // s6 = "xxxxxx"CString s7((LPCSTR)ID_FILE_NEW); // s7 = "Create a new document"CString city = "Philadelphia";21.CString::Deleteint Delete( int nIndex, int nCount = 1);返回值:是被删除前的字符串的长度nIndex是第一个被删除的字符,nCount是一次删除几个字符。

合集下载

c++ cstring用法

c++ cstring用法

在C++中,`cstring`是一个库,其中包含一些用于处理C风格字符串(以null结尾的字符数组)的函数。

在许多方面,它们与标准库中的`string`类一起使用的方法类似。

下面是一些常见的`cstring`函数的使用方法:1. `memcmp`: 这个函数可以比较两个内存区域的内容。

它接受两个指向内存区域的指针和要比较的字节数。

```cpp#include <cstring>int main() {char str1[] = "Hello";char str2[] = "Hello";if (std::memcmp(str1, str2, 5) == 0) {std::cout << "The first five characters are the same." << std::endl;} else {std::cout << "The first five characters are not the same."<< std::endl;}return 0;}```2. `memcpy`: 这个函数用于将一段内存的内容复制到另一段内存。

它接受三个参数:目标内存区域的指针,源内存区域的指针,以及要复制的字节数。

```cpp#include <cstring>int main() {char str1[100] = "Hello";char str2[100];std::memcpy(str2, str1, 5);str2[5] = '\0'; // Don't forget the null terminator!std::cout << str2 << std::endl; // Prints "Hello"return 0;}```3. `strlen`: 这个函数用于获取C风格字符串的长度。

C++_CString_Format详细用法

C++_CString_Format详细用法

Format是一个很常用,却又似乎很烦的方法,以下是它的完整概貌,以供大家查询之用格式化字符串Format("%d",12)意思是将一个整形的格式化的字符.格式说明总是以%字符开始,以下是不同类型数据的格式方式%号后的说明:d输出带符号十进制数o输出无符号八进制数x输出无符号十六进制数u输出无符号数c输出单个字符s输出一串字符f输出实数(6位小数)e以指数形式输出实数g选用f与e格式中输出宽度较小的格式,不输出0ld输入输出long型数据lf输入输出double型数据m数据输出宽度为m.n输出小数位数为n一、字符串首先看它的声明:function Format(const Format: string; const Args: array of const): string; overload; 事实上Format方法有两个种形式,另外一种是三个参数的,主要区别在于它是线程安全的,但并不多用,所以这里只对第一个介绍:function Format(const Format: string; const Args: array of const): string; overload; Format参数是一个格式字符串,用于格式化Args里面的值的。

Args又是什么呢,它是一个变体数组,即它里面可以有多个参数,而且每个参数可以不同。

如以下例子:Format("my name is %6s","wind");返回后就是my name is wind现在来看Format参数的详细情况:Format里面可以写普通的字符串,比如"my name is"但有些格式指令字符具有特殊意义,比如"%6s"格式指令具有以下的形式:"%" [index ":"] ["-"] [width] ["." prec] type它是以"%"开始,而以type结束,type表示一个具体的类型。

cstring 用法

cstring 用法

cstring 用法C语言中的字符串是一组字符的序列,以\0(空字符)作为结尾。

在C语言中,字符串的处理非常常见,因此对于字符串的操作有着丰富的函数库。

字符串的基本操作包括字符串的输入与输出、字符串的拷贝、字符串的连接、字符串的比较、字符串的截取等。

1. 字符串的输入与输出:C语言中,字符串的输入可以使用scanf函数,输出可以使用printf函数。

例如:```cchar str[20];printf("请输入一个字符串:");scanf("%s", str);printf("您输入的字符串是:%s\n", str);```这段代码从终端读取一个字符串,并输出到终端。

2. 字符串的拷贝:C语言中,可以使用strcpy函数将一个字符串拷贝到另一个字符串中。

例如:```c#include <string.h>char str1[] = "Hello";char str2[20];strcpy(str2, str1);printf("拷贝后的字符串为:%s\n", str2);```这段代码将字符串"Hello"拷贝到str2中,并输出拷贝后的字符串。

3. 字符串的连接:C语言中,可以使用strcat函数将两个字符串连接起来。

例如:```c#include <string.h>char str1[] = "Hello";char str2[] = " world!";strcat(str1, str2);printf("连接后的字符串为:%s\n", str1);```这段代码将字符串"Hello"和" world!"连接起来,并输出连接后的字符串。

4. 字符串的比较:C语言中,可以使用strcmp函数来比较两个字符串的大小关系。

VC中CString,int,string,char之间的转换

VC中CString,int,string,char之间的转换

VC中CString,int,string,char*之间的转换1 CString,int,string,char*之间的转换string 转CString :CString.format("%s", string.c_str());char 转CString : CString.format("%s", char*);char 转string : string s(char *);string 转char * : char *p = string.c_str();CString 转string : string s(CString.GetBuffer());1,string -> CStringCString.format("%s", string.c_str());用c_str()确实比data()要好.2,char -> stringstring s(char *);你的只能初始化,在不是初始化的地方最好还是用assign().3,CString -> stringstring s(CString.GetBuffer());GetBuffer()后一定要ReleaseBuffer(),否则就没有释放缓冲区所占的空间.《C++标准函数库》中说的有三个函数可以将字符串的内容转换为字符数组和C—string1.data(),返回没有”\0“的字符串数组2,c_str(),返回有”\0“的字符串数组3,copy()CString互转int将字符转换为整数,可以使用atoi、_atoi64或atol。

而将数字转换为CString变量,可以使用CString的Format函数。

如CString s;int i = 64;s.Format("%d", i)Format函数的功能很强,值得你研究一下。

void CStrDlg::OnButton1(){// TODO: Add your control notification handler code hereCStringss="1212.12";int temp=atoi(ss);CString aa;aa.Format("%d",temp);AfxMessageBox("var is " + aa);}sart.Format("%s",buf);CString互转char*///char * TO cstringCString strtest;char * charpoint;charpoint="give string a value";strtest=charpoint;///cstring TO char *charpoint=strtest.GetBuffer(strtest.GetLength());标准C里没有string,char *==char []==string可以用CString.Format("%s",char *)这个方法来将char *转成CString。

CString函数大全

CString函数大全
cout<<csStr;//abxyzc
//当nIndex为负数时,插入在对象开头
//当nIndex超出对象末尾时,插入在对象末尾
int Remove( TCHAR ch );
移除对象内的指定字符。返回移除的数目
例:csStr="aabbaacc";
csStr.Remove('a');
cout<<csStr;//bbcc
例:csStr="abcdef";
cout<<csStr.Find('b');//1
cout<<csStr.Find("de");//3
cout<<csStr.Find('b',3);//-1
cout<<csStr.Find('b',0);//1
cout<<csStr.Find("de",4);//-1
例:csStr="abcdef";
cout<<csStr.FindOneOf("cxy");//2
CString SpanExcluding( LPCTSTR lpszCharSet ) const;
返回对象中与lpszCharSet中任意匹配的第一个字符之前的子串
例:csStr="abcdef";
例:csStr="ABCDEF中文123456";
printf("%d",csStr.GetLength());//16
void MakeReverse( );
颠倒字符串的顺序

VC++ CString详解

VC++  CString详解

1、CString 对象的连接:用”+”2、格式化字符串:用CString 对象的Format()方法。

用这种方法的好处是你不用担心用来存放格式化后数据的缓冲区是否足够大,这些工作由CString类替你完成。

格式化是一种把其它不是字符串类型的数据转化为CString类型的最常用技巧。

*****CString s; s.Format(_T("%d"), total);我总是对我的字符串使用_T()宏,这是为了让我的代码至少有Unicode的意识#define _T(x) x // 非Unicode版本(non-Unicode version)而在Unicode环境下是如下定义的:#define _T(x) L##x // Unicode版本(Unicode version)所以在Unicode环境下,它的效果就相当于:s.Format(L"%d", total);如果你认为你的程序可能在Unicode的环境下运行,那么开始在意用Unicode 编码。

比如说,不要用sizeof() 操作符来获得字符串的长度,因为在Unicode环境下就会有2倍的误差。

我们可以用一些方法来隐藏Unicode的一些细节,比如在我需要获得字符长度的时候,我会用一个叫做DIM的宏,这个宏是在我的dim.h文件中定义的,我会在我写的所有程序中都包含这个文件:#define DIM(x) ( sizeof((x)) / sizeof((x)[0]) )这个宏不仅可以用来解决Unicode的字符串长度的问题,也可以用在编译时定义的表格上,它可以获得表格的项数,如下:class Whatever { ... };Whatever data[] = {{ ... },...{ ... },};for(int i = 0; i < DIM(data); i++) // 扫描表格寻找匹配项。

C 中CSTRING的用法详解

CStringTCString CStringA CStringW 操作的字符类型:TCHAR操作的字符类型:char操作的字符类型:wchar_t关于TCHAR,char,wchar_t三种字符类型的区别,会在随后的文章中详细解释!下面是一、CString类的几种基本操作:1、长度:GetLength();CString str(_T("abc"));int len=str.GetLength();//len==32、是否为空(即不含字符):IsEmpty();3、清空字符串:Empty();CString str(_T("abc"));BOOL mEmpty=str.IsEmpty();//mEmpty==FALSEstr.Empty();mEmpty=str.IsEmpty();//mEmpty==TRUE4、转换大小写:MakeUpper(),MakeLower();5、转换顺序:MakeReverse();二、字符串的查找1、Find:从制定位置开始查找指定字符串,返回其位置(找不到返回-1)CString str(_T("abcdefg"));int idx=str.Find(_T("cde"),0);//idx的值为2;2、ReverseFind:从字符串末尾开始查找指定的字符,返回其位置,找不到返回-1,虽然是从后向前查找,但是位置为从开始算起;CString str(_T("abcdefg"));int idx=str.ReverseFind('e');//idx的值为4;3、FindOneOf:查找参数中给定字符串中的任意字符,返回第一次出现的位置CString str(_T("abcabcd"));int idx=str.FindOneOf(_T("cbd"));//idx的值为1;三、字符串的提取Left,Mid,Right:分别实现从CString对象的左、中、右进行字符串的提取操作CString str(_T("abcd"));CString strResult=str.Left(2);//strResult==abstrResult=str.Mid(1);//strResult==bcdstrResult=str.Mid(0,2);//strResult==abstrResult=str.Right(2);//strResult==cd四、其他类型与CString类型的转换,CString str;1、格式化字符串Format:实现从int、long等数值类型、TCHAR、TCHAR*等类型向CString 类型转换(注:TCHAR、TCHAR*等类型向CString类型转换,可以直接赋值)--CString->int:_ttoi()--CString->TCHAR*:1)TCHAR*T=str.GetBuffer();str.ReleaseBuffer();2)TCHAR*T=(LPTSTR)(LPCTSTR)str;五、CString对象的Ansi与Unicode转换1、当前工程环境Unicode(窄字节(Ansi)向宽字节(Unicode)转换)CString str;str="abc";char*p="defg";str=p;2、当前工程环境非Unicode(宽字节向窄字节转换)CString str;str=L"abc";wchar_t*p=L"defg";str=p;六、CString对象包含字符串所占用的字节数CString str;int n=str.GetLength()*sizeof(TCHAR);**错误的求法:sizeof(CString)、sizeof(str),这是求指针长度,总是为4。

cstring方法

cstring方法在C++中,字符串是一种非常重要的数据类型,广泛应用于各种场景中。

为了方便处理字符串,C++提供了一些常见的字符串操作函数,其中最常用的就是cstring方法了。

在本篇文章中,我们将详细介绍cstring方法的使用方法。

一、cstring方法概述cstring是C++标准库中定义的一个字符串操作库,包括了各种字符串操作函数,如字符串复制strcpy、字符串合并strcat、字符串长度strlen等。

cstring库有时也称为C-string库,因其支持C风格的字符串操作。

cstring库是头文件<string.h>的一个子集,实际上只包含了C-style字符串(以null字符结尾)的函数操作。

二、使用cstring方法进行字符串复制在C++中,字符串复制是一个非常常用的操作,我们称之为strcpy。

下面是strcpy的使用方法:char str1[] = "Hello, world!";char str2[50];strcpy(str2, str1); // 复制 str1 到 str2cout << "str1: " << str1 << endl;cout << "str2: " << str2 << endl;输出:str1: Hello, world! str2: Hello, world!上面的代码中,我们首先声明了两个字符串,一个是str1,另一个是str2。

然后使用strcpy函数将str1复制到str2中。

最后通过cout语句输出了str1和str2的值。

三、使用cstring方法进行字符串合并字符串合并是另一个常见的操作,我们称之为strcat。

下面是strcat的使用方法:char str1[50] = "Hello";char str2[50] = "World";strcat(str1, str2);cout << "str1: " << str1 << endl;cout << "str2: " << str2 << endl;输出:str1: HelloWorld str2: World在上面的代码中,我们首先声明了两个字符串,然后使用strcat 函数将str2中的内容追加到str1的末尾。

CString的Format方法使用技巧小结

CString的Format方法使用技巧小结CString类是MFC(Microsoft Foundation Classes)中提供的一个用于处理字符串的类,它封装了许多字符串处理的功能,其中包括Format方法。

Format方法可以将格式化的字符串输出到CString对象中,类似于C语言中的printf函数。

在本文中,我将总结一些使用CString的Format方法的技巧。

1.格式化字符串中的占位符:在格式化字符串中,可以使用占位符来表示需要被替换的值。

常用的占位符有:%d(整数)、%f(浮点数)、%s(字符串)、%c(字符)等。

例如:````str.Format("The value is %d", 10);```输出的结果为:"The value is 10"。

2.多个占位符:在格式化字符串中,可以使用多个占位符来表示多个需要被替换的值。

例如:````str.Format("The values are %d and %d", 10, 20);```输出的结果为:"The values are 10 and 20"。

3.格式化字符串中的转义字符:在格式化字符串中,可以使用转义字符来表示一些特殊字符。

常用的转义字符有:\n(换行符)、\t(制表符)、\\(反斜杠)等。

例如:````str.Format("This is a newline\nThis is a tab\tThis is a backslash\\");```输出的结果为:````This is a newlineThis is a tab This is a backslash\```4.格式化字符串中的宽度和精度:在格式化字符串中,可以使用宽度和精度来控制输出的格式。

宽度表示输出的最小字符数,精度表示浮点数的小数位数。

例如:```````输出的结果为:"The value is 3.14"。

VCCString用法整理

VC:CString用法整理(转载)1.CString::IsEmptyBOOL IsEmpty( ) const;返回值:如果CString 对象的长度为0,则返回非零值;否则返回0。

说明:此成员函数用来测试一个CString 对象是否是空的。

示例:下面的例子说明了如何使用CString::IsEmpty。

// CString::IsEmpty 示例CString s;ASSERT( s.IsEmpty() );请参阅CString::GetLength2.CString::LeftCString Left( int nCount ) const;throw( CMemoryException );返回值:返回的字符串是前nCount个字符。

示例:CString s( _T("abcdef") );ASSERT( s.Left(2) == _T("ab") );3.CString::LoadStringBOOL LoadString( UINT nID );throw( CMemoryException );返回值:如果加载资源成功则返回非零值;否则返回0。

nID 一个Windows 字符串资源ID。

说明:此成员函数用来读取一个由nID 标识的Windows 字符串资源,并放入一个已有CString 对象中。

示例:下面的例子说明了如何使用CString::LoadString。

// CString::LoadString 示例#define IDS_FILENOTFOUND 1CString s;if (! s.LoadString( IDS_FILENOTFOUND ))4.CString::MakeLowervoid MakeLower( ); //改变字符的小写5.CString::MakeReversevoid MakeReverse( ); //字符倒置6.CString::MakeUppervoid MakeUpper( ); //改变字符的大写7.CString::Mid CString Mid( int nFirst ) const; CString Mid( int nFirst, int nCount ) const; nCount代表要提取的字符数, nFirst代表要提取的开始索引位置示例:CString s( _T("abcdef") ); ASSERT( s.Mid( 2, 3 ) == _T("cde") ); 8.CString::ReleaseBuffervoid ReleaseBuffer( int nNewLength = -1 );参数:nNewLength此字符串的以字符数表示的新长度,不计算结尾的空字符。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档