#include <ctype.h>
#include <string.h>

#define NUL '\0'

char *trim(char *str)
{
      char *ibuf = str, *obuf = str;
      int i = 0, cnt = 0;

      /*
      **  Trap NULL
      */

      if (str)
      {
            /*
            **  Remove leading spaces (from RMLEAD.C)
            */

            for (ibuf = str; *ibuf && isspace(*ibuf); ++ibuf)
                  ;
            if (str != ibuf)
                  memmove(str, ibuf, ibuf - str);

            /*
            **  Collapse embedded spaces (from LV1WS.C)
            */

            while (*ibuf)
            {
                  if (isspace(*ibuf) && cnt)
                        ibuf++;
                  else
                  {
                        if (!isspace(*ibuf))
                              cnt = 0;
                        else
                        {
                              *ibuf = ' ';
                              cnt = 1;
                        }
                        obuf[i++] = *ibuf++;
                  }
            }
            obuf[i] = NUL;

            /*
            **  Remove trailing spaces (from RMTRAIL.C)
            */

            while (--i >= 0)
            {
                  if (!isspace(obuf[i]))
                        break;
            }
            obuf[++i] = NUL;
      }
      return str;
}

자바에는 있지만 c++에는 없는 스트링 관련 클래스



#pragma once


#include <string>


using namespace std;


class CMyString

{

public:

CMyString(void);

~CMyString(void);


string upperCase(string& str);

string lowerCase(string& str);

string trim(const string& str);

string rTrim(const string & str);

string lTrim(const string & str);

};



#include "MyString.h"



CMyString::CMyString(void)

{

}



CMyString::~CMyString(void)

{

}


string CMyString::upperCase(string& str) {

char* buf = new char[s.length()];

str.copy(buf, str.length());

for(int i = 0; i < str.length(); i++)

buf[i] = toupper(buf[i]);

string r(buf, str.length());

delete buf;

return r;

}


// Make a lowercase copy of str:

string CMyString::lowerCase(string& str) {

char* buf = new char[str.length()];

str.copy(buf, str.length());

for(int i = 0; i < str.length(); i++)

buf[i] = tolower(buf[i]);

string r(buf, str.length());

delete buf;

return r;

}


string CMyString::trim(const string& str)

{

unsigned int f,e ;

if (str.length() == 0)

return s;

f = str.find_first_not_of(" \t\r\n");

e = str.find_last_not_of(" \t\r\n");

if (f == string::npos)

return "";

return string(str,f,e-f+1);

}


string CMyString::rTrim(const string & str)

{

unsigned int e;

if (str.length() == 0)

return str;

e = str.find_last_not_of(" \t\r\n");

if (e == string::npos)

return "";

return string(str,0,e+1);

}


string CMyString::lTrim(const string & str)

{

unsigned int f;

if (str.length() == 0)

return str;

f = str.find_first_not_of(" \t\r\n");

if (f == string::npos)

return "";

return string(str,f);

}



ofstream outputStream();

outputStream.open(fileName,fstream::out | fstream::app);

outputStream<<"이어붙일내용";

CString cs

CT2CA temp(cs);
string line(temp);

stringstream ss; 라는 변수가 있을 때



ss.clear(); 를 호출하면 초기화가 되지 않는다



ss.str("");



이렇게 초기화 시킨다.

원하는 EditControl을 선택한 후

속성창에서 Want Return 항목을 TRUE 로 바꾼다





+ Recent posts