Now: Tutorial for Web and Software Design > Programming > c > Programming Content
> CString [Bookmark it]
CString
  CString is a boon to all C++ converts of MFC. Good God! it is so much of a pain to use char* in c++. A small mistake could lead to big mishaps, to any programmer's nightmare. CString in MFC gives lot many features to handle strings, weaning away all such bad memories of char *. This article deals with the usage of CString in MFC programs. It also tries to give some small code snippets wherever necessary.

CString Features:

   There are some special features in CString that makes it really unique and attractive. Some of them are

  • CString has no base classes in MFC. So it is light weight.
  • CString is written based on TCHAR type. It can automatically support UNICODE as well as ASCII strings.
  • CString implements a reference counting mechanism for copy of objects. This saves a lot of memory usage.

How to Use CString:

   CString can be initialized by calling one of its constructors. It can be instantiated with or without parameters. The constructors can accept a char, char*, TCHAR, wchar types as a parameter. The string is constructed according to the parameter passed.

   In case it is created without any parameters, the string will be empty. Values can be assigned with the use of '=' operator.

CString strExample;
strExample = "CString sample value";

   To get the length of a CString, the function CString.GetLength() can be used. This returns the length of the string as an integer.

String Concatenation with a CString:

   String concatenation is very easy with CString. CString has an overloaded operator for + sign, which makes a programmer's life easier.

CString strExample1 = "Sample Value ";
CString strExample2 = "for concat with CString";

//Concatenation with CString and CString
strExample1 = strExample1 + strExample2;

//Concatenation with CString and a const char*
strExample1 = strExample1 + "for concat without CString";

CString and BSTR:

   CString also provides for conversions to BSTR with functions like AllocSysString and SetSysString. It can allocate memory and copy the data into the allocated space for BSTR.

CString strBstrConv = "Sample for CString to BSTR";
BSTR bstrVariable = strBstrConv.AllocSysString();

String Comparisons with CString:

   CString contains an operator member function for the '=' operator. This operator performs a case-sensitive comparison. For case-insensitive comparisons the function CompareNoCase can be used.

CString strCompareString1 = "String Compare Sample";
CString strCompareString2 = "sTring Compare Sample";

//Using == operator case sensitive CString comparison
if(strCompareString1 == strCompareString2)
  MessageBox("Both Strings are equal - Case Sensitive");

//Using CompareNoCase for case-insensitive CString comparison
if(strCompareString1.ComparNoCase(strCompareString2) == 0)
   MessageBox("Both Strings are equal - Case Insensitive");

Finding a Character inside CString:

    CString supports find for a single character and also strings. It provides searching a character from the reverse direction.

   CString strFindData = "Finding a Character and a string in forward direction";

//Find a char 'C'
int lPos = strFindData.Find('C');

//Find "string"
int lPos = strFindData.Find('string');

These find functions return the position of the character or string as an integer.

Using Format Functions in CString:

   The Format function in CString can be used to convert different data types into a string type. This function is similar to the sprintf function.

CString strFormatData;
int x = 40;
char strdata[] = "Test Data ";

strFormatData.Format("%s %d",x,strdata);

//The output will be "Test Data  40"

   The above is only a small list of the capabilities of CString. There are a lot more of features available with CString. Not all of them can be explained. More of those features will become clear when one starts using it.

[Bookmark][Print] [Close][To Top]
  • Prev Article-Programming:

  • Next Article-Programming:
  • Related Materias
    Using the For匛ach Stateme
    Crystal Reports Tutorial -
    VB Tutorials - MultiSelect
    Visual Basic Explorer - Tu
    Visual Basic Explorer - AS
    ASP - Active Server Pages 
    Win32 program to create di
    Win32 Registry Tweaks Util
    Registry Operations
    Registry Operations using 
    Topics
    Photoshop Tutorial
     

    Special Effect

      3D Effect
      Photoshop Articles
    Programming Tutorial
     

    C/C++ Tutorial

      Visual Basic
      C# Tutorial
    Database Tutorial
     

    MySQL Tutorial

      MS SQL Tutorial
      Oracle Tutorial
    Graphic Design Tutorial
     

    Coreldraw Tutorial

      Illustrator Tutorial
      3D Graphics Articles
    Webmaster Articles
     

    Domain Service

      Web Hosting
      Site Promotion
    Java Tutorial&Articles
     

    Java Servlets

      JavaEE Tutorial
     

    JavaBeans Tutorial

    XML Tutorial&Articles
     

    XML Style Tutorial

      AJAX Tutorial
      XML Mobile
    Flash Tutorial&Articles
     

    Flash Video

      Action Script
      Flash Articles
    OS Tutorial&Articles
     

    Linux Tutorial

      Symbian Tutorial
      MacOS Tutorial