原来有全函数
void CBigInt::Get(CString& str, unsigned int system)
{
int len=str.GetLength(),k;
......
}被我改成这样
void CBigInt::Get(char *str, unsigned int system)
{
int len=strlen(str),k;
......
}
后,有时结果正确,有时错误.请问正确的是怎样的.
查了昨晚一个晚上+今天上午,才知道原因在此处.谢谢关照,在线期待中....
void CBigInt::Get(CString& str, unsigned int system)
{
int len=str.GetLength(),k;
......
}被我改成这样
void CBigInt::Get(char *str, unsigned int system)
{
int len=strlen(str),k;
......
}
后,有时结果正确,有时错误.请问正确的是怎样的.
查了昨晚一个晚上+今天上午,才知道原因在此处.谢谢关照,在线期待中....
int len=strlen((LPCTSTR)str),k;
其实 len=str.GetLength()挺好 用CString类自己的函数
CString t="0123456789ABCDEF";之后,具体存放在t的哪个成员处? class CString 的那个定义看不懂,GetLength()的函数体也不知道写在哪儿。不过经试验,GetLength()的返回值与strlen()的返回值相同,所以怀疑GetLength()除了返回长度外,是否还做了一些其它手脚?翘首期盼中......
问题就在,有的str给它结果正确,有的错误。所有的str都是非空的,确认是。所以一开始怀疑是后面的函数体处理不全面。而差另就在一个GetLength(). 郁闷中.
CString str=_T["汉字"];
#ifdef _UNICODE
int len=str.GetLength();
ASSERT(len==2);
#else
int len=str.GetLength();
ASSERT(len==4);
#endif
//建议用_tcslen()---vc定义过的宏,在unicode下是wcslen(),在mb下是strlen();
//因此它返回的长度一定等于CString的GetLength(),如果没人对它重写的话.
ASSERT(_tcslen()==str.GetLength());