stringbasicsystemdeletenulldate

<1>CString 转化为 char*

[cpp] view plaincopyprint?
  1. CString strData = _T("ni hao");
  2. int len = WideCharToMultiByte(CP_ACP, 0, strData, -1, NULL, 0, NULL, NULL);
  3. char* szTarget = new char[len + 1];
  4. memset(szTarget, 0, len + 1);
  5. WideCharToMultiByte (CP_ACP, 0,strData, -1, szTarget, len, NULL,NULL);
  6. delete[] szTarget;

CString strData = _T("ni hao"); int len = WideCharToMultiByte(CP_ACP, 0, strData, -1, NULL, 0, NULL, NULL); char* szTarget = new char[len + 1]; memset(szTarget, 0, len + 1); WideCharToMultiByte (CP_ACP, 0,strData, -1, szTarget, len, NULL,NULL); delete[] szTarget;

CString->TCHAR*的转化可以用函数GetBuff()
函数原型为:LPTSTR GetBuffer( int nMinBufLength );
[cpp] view plaincopyprint?
  1. CString str("CString");
  2. TCHAR* szMsg = new TCHAR[100];
  3. //其参数为CString字符串的长度
  4. szMsg = str.GetBuffer(str.GetLength());
  5. str.ReleaseBuffer();
  6. delete []szMsg;
  7. szMsg = NULL;

CString str("CString"); TCHAR* szMsg = new TCHAR[100]; //其参数为CString字符串的长度 szMsg = str.GetBuffer(str.GetLength()); str.ReleaseBuffer(); delete []szMsg; szMsg = NULL;

TCHAR*->CString的转化
[cpp] view plaincopyprint?
  1. TCHAR szTchar[18] = L"TCHAR";
  2. CString str;
  3. str.Format(_T("%s"),szTchar);

TCHAR szTchar[18] = L"TCHAR"; CString str; str.Format(_T("%s"),szTchar);

<2>
char 转换TCHAR未写
char*、TCHAR*转换CString
CString str(****)
下面详细写一下其它转换

[cpp] view plaincopyprint?
  1. /*
  2. ***********************************************************************
  3. * 函数: TransCStringToTCHAR
  4. * 描述:将CString 转换为 TCHAR*
  5. * 日期:2003-05-30 King
  6. ***********************************************************************
  7. */
  8. TCHAR* CPublic::CString2TCHAR(CString &str)
  9. {
  10. int iLen = str.GetLength();
  11. TCHAR* szRs = new TCHAR[iLen];
  12. lstrcpy(szRs, str.GetBuffer(iLen));
  13. str.ReleaseBuffer();
  14. return szRs;
  15. }
  16. /*
  17. ***********************************************************************
  18. * 函数: THCAR2Char
  19. * 描述:将TCHAR* 转换为 char*
  20. * 日期:2003-05-30 King
  21. ***********************************************************************
  22. */
  23. char* CPublic::THCAR2char(TCHAR* tchStr)
  24. {
  25. int iLen = 2*wcslen(tchStr);//CString,TCHAR汉字算一个字符,因此不用普通计算长度
  26. char* chRtn = new char[iLen+1]
  27. wcstombs(chRtn,tchStr,iLen+1);//转换成功返回为非负值
  28. return chRtn;
  29. }
  30. /*
  31. ***********************************************************************
  32. * 函数: CString2char
  33. * 描述:将CString转换为 char*
  34. * 日期:2003-05-26 King
  35. ***********************************************************************
  36. */
  37. char* CPublic::CString2char(CString &str)
  38. {
  39. int len = str.GetLength();
  40. char* chRtn = (char*)malloc((len*2+1)*sizeof(char));//CString的长度中汉字算一个长度
  41. memset(chRtn, 0, 2*len+1);
  42. USES_CONVERSION;
  43. strcpy((LPSTR)chRtn,OLE2A(str.LockBuffer()));
  44. return chRtn;
  45. }
  46. //参考
  47. ///
  48. //Pocket PC上的UNICODE和ANSI字符串
  49. //By Vassili Philippov, September 26, 2001.
  50. //杨方思歧 译
  51. /*
  52. ***********************************************************************
  53. * 函 数 名:GetAnsiString
  54. * 描 述:将CString(unicode)转换为char*(ANSI)
  55. * 参 数:CString &s 要转换的CString
  56. * 返 回 值:返回转换结果
  57. * 日期、作者:创建日期:2003-5-30 King
  58. * 最后修改:2003-5-30 King
  59. ***********************************************************************
  60. */
  61. char* GetAnsiString(const CString &s)
  62. {
  63. int nSize = 2*s.GetLength();
  64. char *pAnsiString = new char[nSize+1];
  65. wcstombs(pAnsiString, s, nSize+1);
  66. return pAnsiString;
  67. }

/* *********************************************************************** * 函数: TransCStringToTCHAR * 描述:将CString 转换为 TCHAR* * 日期:2003-05-30 King *********************************************************************** */ TCHAR* CPublic::CString2TCHAR(CString &str) { int iLen = str.GetLength(); TCHAR* szRs = new TCHAR[iLen]; lstrcpy(szRs, str.GetBuffer(iLen)); str.ReleaseBuffer(); return szRs; } /* *********************************************************************** * 函数: THCAR2Char * 描述:将TCHAR* 转换为 char* * 日期:2003-05-30 King *********************************************************************** */ char* CPublic::THCAR2char(TCHAR* tchStr) { int iLen = 2*wcslen(tchStr);//CString,TCHAR汉字算一个字符,因此不用普通计算长度 char* chRtn = new char[iLen+1] wcstombs(chRtn,tchStr,iLen+1);//转换成功返回为非负值 return chRtn; } /* *********************************************************************** * 函数: CString2char * 描述:将CString转换为 char* * 日期:2003-05-26 King *********************************************************************** */ char* CPublic::CString2char(CString &str) { int len = str.GetLength(); char* chRtn = (char*)malloc((len*2+1)*sizeof(char));//CString的长度中汉字算一个长度 memset(chRtn, 0, 2*len+1); USES_CONVERSION; strcpy((LPSTR)chRtn,OLE2A(str.LockBuffer())); return chRtn; } //参考 /// //Pocket PC上的UNICODE和ANSI字符串 //By Vassili Philippov, September 26, 2001. //杨方思歧 译 /* *********************************************************************** * 函 数 名:GetAnsiString * 描 述:将CString(unicode)转换为char*(ANSI) * 参 数:CString &s 要转换的CString * 返 回 值:返回转换结果 * 日期、作者:创建日期:2003-5-30 King * 最后修改:2003-5-30 King *********************************************************************** */ char* GetAnsiString(const CString &s) { int nSize = 2*s.GetLength(); char *pAnsiString = new char[nSize+1]; wcstombs(pAnsiString, s, nSize+1); return pAnsiString; }

==========================================================================
evc vc字符串转换处理

1.头文件中要定义宏;  
      #define   UNICODE  
      #define   _UNICODE   
  

char   buf[128];  
  memset(buf,0,128);  
  strcpy(buf,"你好");  
  WCHAR   pCName[128];  
  memset(pCName,0,128);  
  MultiByteToWideChar(CP_THREAD_ACP,MB_USEGLYPHCHARS,buf,strlen(buf),pCName,128);   
   至于WCHAR   转换到CHAR,则用  
  WideCharToMultiByte

//

  2.char转换成wchar  
      const   char   *pFilePathName   =   "c://aa.dll";  
      int   nLen   =   strlen(pFilePathName)   +   1;  
      int   nwLen   =   MultiByteToWideChar(CP_ACP,   0,   pFilePathName,  
nLen,   NULL,   0);  
   
      TCHAR   lpszFile[256];  
      MultiByteToWideChar(CP_ACP,   0,   pFilePathName,   nLen,   lpszFile,  
nwLen);  
   
  3.wchar转换成char  
        char   *pFilePathName;  
        TCHAR   lpszFile[256];  
      _tcscpy(lpszFile,   _T("c://aa.dll"));  
   
      int   nLen   =   wcslen(wstr)+1;    
      WideCharToMultiByte(CP_ACP,   0,   lpszFile,   nLen,   pFilePathName,  
2*nLen,   NULL,   NULL);

char*和CString转换
CString 是一种很特殊的 C++ 对象,它里面包含了三个值:一个指向某个数据缓冲区的指针、一个是该缓冲中有效的字符记数(它是不可存取的,是位于
CString 地址之下的一个隐藏区域)以及一个缓冲区长度。
有效字符数的大小可以是从0到该缓冲最大长度值减1之间的任何数(因为字符串结尾有一个NULL字符)。字符记数和缓冲区长度被巧妙隐藏。

(1) char*转换成CString
  若将char*转换成CString,除了直接赋值外,还可使用CString::Format进行。例如:
         char chArray[] = "Char  test";
         TCHAR * p = _T("Char  test");( 或LPTSTR p = _T("Char  test");)
         CString theString = chArray;
         theString.Format(_T("%s"), chArray);
         theString = p;

(2) CString转换成char*

  若将CString类转换成char*(LPSTR)类型,常常使用下列三种方法:

  方法一,使用强制转换。例如:

CString theString( (_T("Char test "));
        LPTSTR lpsz =(LPTSTR)(LPCTSTR)theString;

  方法二,使用strcpy。例如:

CString theString( (_T("Char test "));
       LPTSTR lpsz = new TCHAR[theString.GetLength()+1];
        _tcscpy(lpsz, theString);

  需要说明的是,strcpy(或可移值的_tcscpy)的第二个参数是 const wchar_t* (Unicode)或const char*
(ANSI),系统编译器将会自动对其进行转换。

  方法三,使用CString::GetBuffer。
        如果你需要修改 CString 中的内容,它有一个特殊的方法可以使用,那就是 GetBuffer,它的作用是返回一个可写的缓冲指针。
如果你只是打算修改字符或者截短字符串,例如:
       CString s(_T("Char test "));
        LPTSTR p = s.GetBuffer();
        LPTSTR dot = strchr(p, ''.'');
         // 在这里添加使用p的代码
          if(p != NULL)
         *p = _T('/0');
         s.ReleaseBuffer();                     // 使用完后及时释放,以便能使用其它的CString成员函数
         在 GetBuffer 和 ReleaseBuffer 之间这个范围,一定不能使用你要操作的这个缓冲的 CString 对象的任何方法。因为
ReleaseBuffer 被调用之前,该 CString 对象的完整性得不到保障。

CString ,BSTR ,LPCTSTR之间关系和区别

CString是一个动态TCHAR数组,BSTR是一种专有格式的字符串(需要用系统提供的函数来操纵,LPCTSTR只是一个常量的TCHAR指针。

CString 是一个完全独立的类,动态的TCHAR数组,封装了 + 等操作符和字符串操作方法。
                              typedef OLECHAR FAR* BSTR;
                              typedef const char * LPCTSTR;

vc++中各种字符串的表示法
                              首先char*
                              是指向ANSI字符数组的指针,其中每个字符占据8位(有效数据是除掉最高位的其他7位),这里保持了与传统的C,C++的兼容。
                              LP的含义是长指针(long
                              pointer)。LPSTR是一个指向以‘/0’结尾的ANSI字符数组的指针,与char*可以互换使用,在win32中较多地使用LPSTR。
                              而LPCSTR中增加的‘C’的含义是“CONSTANT”(常量),表明这种数据类型的实例不能被使用它的API函数改变,除此之外,它与LPSTR是等同的。
                              1.LP表示长指针,在win16下有长指针(LP)和短指针(P)的区别,而在win32下是没有区别的,都是32位.所以这里的LP和P是等价的.
                              2.C表示const
                              3.T是什么东西呢,我们知道TCHAR在采用Unicode方式编译时是wchar_t,在普通时编译成char.
                              为了满足程序代码国际化的需要,业界推出了Unicode标准,它提供了一种简单和一致的表达字符串的方法,所有字符中的字节都是16位的值,其数量也可以满足差不多世界上所有书面语言字符的编码需求,开发程序时使用Unicode(类型为wchar_t)是一种被鼓励的做法。
                              LPWSTR与LPCWSTR由此产生,它们的含义类似于LPSTR与LPCSTR,只是字符数据是16位的wchar_t而不是char。
                              然后为了实现两种编码的通用,提出了TCHAR的定义:
                              如果定义_UNICODE,声明如下:
                              typedef wchar_t TCHAR;
                              如果没有定义_UNICODE,则声明如下:
                              typedef char TCHAR;
                              LPTSTR和LPCTSTR中的含义就是每个字符是这样的TCHAR。
                              CString类中的字符就是被声明为TCHAR类型的,它提供了一个封装好的类供用户方便地使用。
                              LPCTSTR:
                                   #ifdef _UNICODE
                                      typedef const wchar_t * LPCTSTR;
                                   #else
                                      typedef const char * LPCTSTR;
                                   #endif
                              VC常用数据类型使用转换详解
                              
                              先定义一些常见类型变量借以说明
                              int i = 100;
                              long l = 2001;
                              float f=300.2;
                              double d=12345.119;
                              char username[]="女侠程佩君";
                              char temp[200];
                              char *buf;
                              CString str;
                              _variant_t v1;
                              _bstr_t v2;
                 一、其它数据类型转换为字符串
                              短整型(int)
                                     itoa(i,temp,10);    
                              //将i转换为字符串放入temp中,最后一个数字表示十进制
                                     itoa(i,temp,2);      //按二进制方式转换
                              长整型(long)
                                     ltoa(l,temp,10);

二、从其它包含字符串的变量中获取指向该字符串的指针
                              CString变量
                              str = "2008北京奥运";
                              buf = (LPSTR)(LPCTSTR)str;
                              BSTR类型的_variant_t变量
                              v1 = (_bstr_t)"程序员";
                              buf = _com_util::ConvertBSTRToString((_bstr_t)v1);
                 三、字符串转换为其它数据类型
                              strcpy(temp,"123");
                              短整型(int)
                                    i = atoi(temp);
                              长整型(long)
                                    l = atol(temp);
                              浮点(double)
                                    d = atof(temp);
                   四、其它数据类型转换到CString
                              使用CString的成员函数Format来转换,例如:
                              整数(int)
                                    str.Format("%d",i);
                              浮点数(float)
                                    str.Format("%f",i);
                              字符串指针(char *)等已经被CString构造函数支持的数据类型可以直接赋值
                                    str = username;
                      五、BSTR、_bstr_t与CComBSTR
                              CComBSTR、_bstr_t是对BSTR的封装,BSTR是指向字符串的32位指针。
                              char *转换到BSTR可以这样: BSTR
                              b=_com_util::ConvertStringToBSTR("数据");    
                              //使用前需要加上头文件comutil.h
                              反之可以使用char *p=_com_util::ConvertBSTRToString(b);

六、VARIANT 、_variant_t 与 COleVariant
                              VARIANT的结构可以参考头文件VC98/Include/OAIDL.H中关于结构体tagVARIANT的定义。
                              对于VARIANT变量的赋值:首先给vt成员赋值,指明数据类型,再对联合结构中相同数据类型的变量赋值,举个例子:
                              VARIANT va;
                              int a=2001;
                              va.vt=VT_I4;    //指明整型数据
                              va.lVal=a;      //赋值
                              对于不马上赋值的VARIANT,最好先用Void VariantInit(VARIANTARG
                              FAR*
                              pvarg);进行初始化,其本质是将vt设置为VT_EMPTY,下表我们列举vt与常用数据的对应关系:
                              unsigned char bVal; VT_UI1
                              short iVal; VT_I2
                              long lVal;  VT_I4 
                              float fltVal;  VT_R4
                              double dblVal;  VT_R8 
                              VARIANT_BOOL boolVal;  VT_BOOL
                              SCODE scode;  VT_ERROR
                              CY cyVal;  VT_CY
                              DATE date;  VT_DATE
                              BSTR bstrVal;  VT_BSTR
                              IUnknown FAR* punkVal;  VT_UNKNOWN
                              IDispatch FAR* pdispVal;  VT_DISPATCH
                              SAFEARRAY FAR* parray;  VT_ARRAY|*
                              unsigned char FAR* pbVal;  VT_BYREF|VT_UI1
                              short FAR* piVal;  VT_BYREF|VT_I2
                              long FAR* plVal;  VT_BYREF|VT_I4
                              float FAR* pfltVal;  VT_BYREF|VT_R4
                              double FAR* pdblVal; VT_BYREF|VT_R8
                              VARIANT_BOOL FAR* pboolVal; VT_BYREF|VT_BOOL
                              SCODE FAR* pscode;  VT_BYREF|VT_ERROR
                              CY FAR* pcyVal;  VT_BYREF|VT_CY
                              DATE FAR* pdate; VT_BYREF|VT_DATE
                              BSTR FAR* pbstrVal;  VT_BYREF|VT_BSTR
                              IUnknown FAR* FAR* ppunkVal;  VT_BYREF|VT_UNKNOWN
                              IDispatch FAR* FAR* ppdispVal;
                              VT_BYREF|VT_DISPATCH
                              SAFEARRAY FAR* FAR* pparray;  VT_ARRAY|*
                              VARIANT FAR* pvarVal;  VT_BYREF|VT_VARIANT
                              void FAR* byref;  VT_BYREF
                              _variant_t是VARIANT的封装类,其赋值可以使用强制类型转换,其构造函数会自动处理这些数据类型。
                              例如:
                              long l=222;
                              ing i=100;
                              _variant_t lVal(l);
                              lVal = (long)i;
                              COleVariant的使用与_variant_t的方法基本一样,请参考如下例子:
                              COleVariant v3 = "字符串", v4 = (long)1999;
                              CString str =(BSTR)v3.pbstrVal;
                              long i = v4.lVal;

有点乱哈,时间比较紧,暂时先放着,有时间了会好好整理的!

CString 是一种很特殊的 C++ 对象,它里面包含了三个值:一个指向某个数据缓冲区的指针、一个是该缓冲中有效的字符记数(它是不可存取的,是位于 CString 地址之下的一个隐藏区域)以及一个缓冲区长度。 有效字符数的大小可以是从0到该缓冲最大长度值减1之间的任何数(因为字符串结尾有一个NULL字符)。字符记数和缓冲区长度被巧妙隐藏。

(1) char*转换成CString

  若将char*转换成CString,除了直接赋值外,还可使用CString::Format进行。例如:

char chArray[] = "Char test";
        TCHAR * p = _T("Char test");( 或LPTSTR p = _T("Char test");)
         CString theString = chArray;
         theString.Format(_T("%s"), chArray);
         theString = p;

(2) CString转换成char*

  若将CString类转换成char*(LPSTR)类型,常常使用下列三种方法:

  方法一,使用强制转换。例如:

CString theString( (_T("Char test "));
        LPTSTR lpsz =(LPTSTR)(LPCTSTR)theString;

  方法二,使用strcpy。例如:

CString theString( (_T("Char test "));
       LPTSTR lpsz = new TCHAR[theString.GetLength()+1];
        _tcscpy(lpsz, theString);

  需要说明的是,strcpy(或可移值的_tcscpy)的第二个参数是 const wchar_t* (Unicode)或const char* (ANSI),系统编译器将会自动对其进行转换。

  方法三,使用CString::GetBuffer。

如果你需要修改 CString 中的内容,它有一个特殊的方法可以使用,那就是 GetBuffer,它的作用是返回一个可写的缓冲指针。 如果你只是打算修改字符或者截短字符串,例如:
       CString s(_T("Char test "));
        LPTSTR p = s.GetBuffer();

LPTSTR dot = strchr(p, ''.'');

// 在这里添加使用p的代码

if(p != NULL)

*p = _T('');
         s.ReleaseBuffer();                     // 使用完后及时释放,以便能使用其它的CString成员函数

在 GetBuffer 和 ReleaseBuffer 之间这个范围,一定不能使用你要操作的这个缓冲的 CString 对象的任何方法。因为ReleaseBuffer被调用之前,该 CString 对象的完整性得不到保障。

----------------------------------------------------

其它数据类型转换为字符串

1。短整型(int)
itoa(i,temp,10);///将i转换为字符串放入temp中,最后一个数字表示十进制
itoa(i,temp,2); ///按二进制方式转换
2。长整型(long)
ltoa(l,temp,10);
3。浮点数(float,double)
用fcvt可以完成转换,这是MSDN中的例子:
int decimal, sign;
char *buffer;
double source = 3.1415926535;
buffer = _fcvt( source, 7, &decimal, &sign );
运行结果:source: 3.1415926535 buffer: '31415927' decimal: 1 sign: 0
decimal表示小数点的位置,sign表示符号:0为正数,1为负数
4。CString变量
str = "2008北京奥运";
buf = (LPSTR)(LPCTSTR)str;
5。BSTR变量
BSTR bstrValue = ::SysAllocString(L"程序员");
char * buf = _com_util::ConvertBSTRToString(bstrValue);
SysFreeString(bstrValue);
AfxMessageBox(buf);
delete(buf);
6。CComBSTR变量
CComBSTR bstrVar("test");
char *buf = _com_util::ConvertBSTRToString(bstrVar.m_str);
AfxMessageBox(buf);
delete(buf);

7。_bstr_t变量
_bstr_t类型是对BSTR的封装,因为已经重载了=操作符,所以很容易使用
_bstr_t bstrVar("test");
const char *buf = bstrVar;///不要修改buf中的内容
AfxMessageBox(buf);

8。通用方法(针对非COM数据类型)
用sprintf完成转换
char buffer[200];
char c = '1';
int i = 35;
long j = 1000;
float f = 1.7320534f;
sprintf( buffer, "%c",c);
sprintf( buffer, "%d",i);
sprintf( buffer, "%d",j);
sprintf( buffer, "%f",f);
(是转载)

CString、TCHAR*、char*转换 cstring与char *的转化(还包含很多种转换)相关推荐

  1. ​Excel如何转换成Word文档?教你如何实现转换

    怎么把excel表格转换成word文档呢?对文件的格式转换相信大家都经历过很多次了,很多时候都是我们在工作中的办公需求.最近有看到有很多小伙伴想了解怎么把excel表格转换成word文档,对于这个比较 ...

  2. c语言char转cstring,CString、TCHAR*、char*转换 | 时刻需

    char*.TCHAR*转换CString CString str(****) 下面详细写一下其它转换 // /* ****************************************** ...

  3. BSTR、char*和CString转换

    原文: http://blog.csdn.net/zeuskaaba/article/details/4082826 (1) char*转换成CString 若将char*转换成CString,除了直 ...

  4. CString与LPCWSTR、LPSTR、char*、LPWSTR等类型的转换【转】

    CString与LPCWSTR.LPSTR.char*.LPWSTR等类型的转换 VC++ 2010-09-25 21:23:12 阅读457 评论3   字号:大中小 订阅 一.CString与LP ...

  5. BSTR、char* 和 CString 之间的转换 (转)

    BSTR.char* 和 CString 之间的转换 (1) char*转换成CString 若将char*转换成CString,除了直接赋值外,还可使用CString::Format进行.例如: c ...

  6. char*和CString转换

    char*和CString转换 开发者在线 Builder.com.cn 更新时间:2007-09-28作者:ghost 来源:CSDN 本文关键词: ghost char* CString 转换 C ...

  7. String,CString,TCHAR*,char*之间区别和联系

    最近老用到Cstring, TCHAR*, char*的转换. 找到一篇写得蛮详细的. 引用过来, 方便自己以后查阅. char是类型TCHAR也是!不过他可以通过是否定义了UNICODE宏来判断到底 ...

  8. CString 与 LPCWSTR、LPSTR、char*、LPWSTR 等类型的转换

    From:https://www.cnblogs.com/leanee/articles/2940088.html char [] 到 LPWSTR转换的一个具体应用:http://www.cppbl ...

  9. char*,wchar_t*,CString和BSTR之间的转换

    前言 本文并不尝试列举出所有的转换方法,只列举作者认为方便易用的方法. 1.char*和wchar_t*的相互转换 可以利用中间类_bstr_t(头文件comdef.h)方便的进行相互转换 const ...

最新文章

  1. 代码质量第5层-只是实现了功能
  2. 换种监控姿势:基于深度学习+流处理的时序告警系统
  3. iOS-响应上下左右滑动手势
  4. [How TO]-python venv虚拟环境
  5. 判断vc2005运行库是否以已安装
  6. 网友提问:关于CX_VSI_SYSTEM_ERROR异常,Fiori病毒扫描参数文件
  7. 鸿蒙思维和小央美,北市场附近艺术培训
  8. class_create和class_device_create
  9. 加速博士生失败的10种路径
  10. 具备什么样的能力,才能在人工智能企业中获得一席之地
  11. Gitlab14.x 安装、配置、启动 (Centos/Red Hat7/8.x)
  12. K8S_Google工作笔记0006---通过kubeadm方式_部署master节点
  13. 分治比赛选手循环问题
  14. java调用支付宝接口代码介绍
  15. oracle 导出写入文件失败怎么办,编辑dmp文件解决导入导出问题(oracle 922错误 ,缺少或无效选项)...
  16. C#运行时的相互关系
  17. 一个神奇的大学科目《软件工程》,知识点总结+测试题,包你不挂科
  18. 批量删除QQ空间说说和日志的js脚本
  19. 电脑字母下标数字怎么打java_下标小字母大全 一个字母的右下标怎么用电脑打...
  20. pubg服务器未响应请求超时,PUBG进入游戏连接超时怎么办 | 手游网游页游攻略大全...

热门文章

  1. 学管理的我,如何入行的数据分析
  2. 两个74HC595驱动共阳4位段选数码管
  3. Element-ui升级到最新版1.4.13 → 2.13.2
  4. attack(2).pcapng解析
  5. 稳定同位素溯源混合模型-R
  6. 如何用Pillow库制作渐变色图片并添加文字。
  7. 搭建私有云企业网盘需要准备什么?
  8. ubuntu安装rvm
  9. Kubernetes1.7新特性:支持绕过docker,直接通过containerd管理容器
  10. 手把手教你如何使用Charles抓包