Skip to content

Instantly share code, notes, and snippets.

@johnhmj
Created April 30, 2010 13:34
Show Gist options
  • Save johnhmj/385203 to your computer and use it in GitHub Desktop.
Save johnhmj/385203 to your computer and use it in GitHub Desktop.
#include <iostream>
#define LENGTHCASE 26
#define CHARLOWERCASE 'a'
#define CHARUPPERCASE 'A'
// Integrated Development Environment
// Visual C++
using namespace std;
//
class CCase
{
public:
CCase(void);
void ToLowerCase(char* _cstring);
void ToUpperCase(char* _cstring);
private:
char m_lowercase[LENGTHCASE + 1];
char m_uppercase[LENGTHCASE + 1];
};
void main(int argc, char** argv)
{
CCase cc;
char CStr_upper[] = "This is a BOOK.";
char CStr_lower[] = "operating system";
// 轉成小寫
cc.ToLowerCase(CStr_upper);
// 轉成大寫
cc.ToUpperCase(CStr_lower);
// 顯示字串
cout<<CStr_upper<<endl;
cout<<CStr_lower<<endl;
system("PAUSE");
}
CCase::CCase(void)
{
// 讓電腦自行建表
for (size_t i = 0; i < LENGTHCASE; i ++)
{
this->m_lowercase[i] = CHARLOWERCASE + i;
this->m_uppercase[i] = CHARUPPERCASE + i;
}
// 給個結束字元
// 不一定要給,這只是用來除錯的
this->m_lowercase[LENGTHCASE] = NULL;
this->m_uppercase[LENGTHCASE] = NULL;
}
void CCase::ToLowerCase(char* _cstring)
{
for (size_t i = 0; _cstring[i] != NULL; i ++)
{
for (size_t j = 0; j < LENGTHCASE; j ++)
{
// 只要有字元符合大寫,一律設定為小寫
if ( _cstring[i] == this->m_uppercase[j] )
{
_cstring[i] = this->m_lowercase[j];
}
}
}
}
void CCase::ToUpperCase(char* _cstring)
{
for (size_t i = 0; _cstring[i] != NULL; i ++)
{
for (size_t j = 0; j < LENGTHCASE; j ++)
{
// 只要有字元符合小寫,一律設定為大寫
if ( _cstring[i] == this->m_lowercase[j] )
{
_cstring[i] = this->m_uppercase[j];
}
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment