第一种
char* Tolower(const char * sSource,int len )
{
if (NULL==sSource)
{
return "" ;
}
char Letter[]={0};
for (int n=0;n<=len;++sSource,++n)
{
Letter[n] =tolower(*sSource);
}
char* pnew=new char[len+1];
std::auto_ptr<char> p(pnew);
pnew=Letter;//注意这里出错了,虽然pnew是分配在动态内存区的,但用一个栈内存指针Letter给其赋值,当Letter的生命周期结束后,其内容可能会发生变化
return pnew;
}
//第二种
void Tolower(char *sSource, int len )
{
char *nAddr = sSource;
if (NULL==nAddr )
{
return;
}
for (int n = 0; n <= len; ++nAddr ,++n)
{
char sz = 0;
sz = tolower(*nAddr );
*nAddr = sz;
}
}
//第三种
void Tolower(char *sSource)
{
char *nAddr = sSource;
if (NULL==nAddr )
{
return;
}
int len = strlen(sSource);
for (int n = 0; n <= len; ++nAddr ,++n)
{
char sz = 0;
sz = tolower(*nAddr );
*nAddr = sz;
}
}