• MFC中cstring,string和char[]的相互转化


    int 转 CString:
    CString.Format("%d",int);
    ...............................
    string 转 CString 
    CString.format("%s", string.c_str()); 
    用c_str()确实比data()要好.
     
    .......................................
    char* 转 CString 
    CString.format("%s", char*); 

     CString strtest; 
     char * charpoint; 
     charpoint="give string a value"; 
     strtest=charpoint; //直接付值

    ...................................................................
    CString 转 int
     CString  ss="1212.12"; 
     int temp=atoi(ss); //atoi _atoi64或atol
     
    将字符转换为整数,可以使用atoi、_atoi64或atol。 
    int int_chage = atoi((lpcstr)ss) ;
    或:
       CString str = "23";
       UINT uint;
       sscanf(str, "%d", uint);

    ..............................
    string 转 int
    ..............................
    char* 转 int
     #include <stdlib.h>
     
     int atoi(const char *nptr);
     long atol(const char *nptr);
     long long atoll(const char *nptr);
     long long atoq(const char *nptr);
    ...................................................................
    CString 转 string
      string s(CString.GetBuffer()); 
      GetBuffer()后一定要ReleaseBuffer(),否则就没有释放缓冲区所占的空间.
     
    ..........................................
    int 转 string
    ..........................................
    char* 转 string 
     string s(char *); 
     你的只能初始化,在不是初始化的地方最好还是用assign().
    ...................................................................
    CString 转 char *
     CString strtest="wwwwttttttt";
     charpoint=strtest.GetBuffer(strtest.GetLength());
    CString转换 char[100] 
     char a[100]; 
     CString str("aaaaaa"); 
     strncpy(a,(LPCTSTR)str,sizeof(a));
      CString  str="aaa";  
      char*  ch;  
      ch=(char*)(LPCTSTR)str;

    ..........................................
    int 转 char *
     在stdlib.h中有个函数itoa()
     itoa的用法:
     itoa(i,num,10);
     i 需要转换成字符的数字
     num 转换后保存字符的变量
     10 转换数字的基数(进制)10就是说按照10进制转换数字。还可以是2,8,16等等你喜欢的进制类型
     原形:char *itoa(int value, char* string, int radix);
     实例:
     #include "stdlib.h"
     #include "stdio.h"
     main()
     {
     int i=1234;
     char s[5];
     itoa(i,s,10);
     printf("%s",s);
     getchar();
    }
    ..........................................
    string 转 char * 
    char *p = string.c_str(); 
     
     string aa("aaa");
     char *c=aa.c_str();
     string mngName;
     char t[200];
     memset(t,0,200);
     strcpy(t,mngName.c_str());

    ...................................................................
    标准C里没有string,char *==char []==string
    可以用CString.Format("%s",char *)这个方法来将char *转成CString。要把CString转成char *,用操
    作符(LPCSTR)CString就可以了。
    cannot convert from 'const char *' to 'char *'
    const char *c=aa.c_str(); 
    string.c_str()只能转换成const char *
     
    补充:
    int转cstring
    eg:
     int a=9;
     CString str;
     str.Format("%d",a);
     
    Cstring转int
     eg:
    CString s="45";
    int r;
    r=atoi(s);
     
    char[]转char*
    eg:

    char ar[]="woshi char array!";
    char* ch1r=ar;

     
    char*转char[]
    eg:

    char* ch1r="woshi char!";
    char chr[10];

    strcpy(chr,ch1r);

     
    CString装char*
    eg:
     char* ch1r;
    CString str1="woshi Cstring!";
    ch1r=(char*)(LPCSTR)str1;
     
    char*转CString
    eg:
    CString str;
    char* chr="wo shi Cstring!";
    str=chr;
  • 相关阅读:
    VCL消息处理机制
    效率由心生,快速提高工作效率秘诀
    我的插件架构
    Windows消息机制要点(转)
    SQLite区分大小写查询
    请教: 事件和消息的联系?
    DataAdapter数据集DataSet和数据库的同步(3):使用CommandBuilder来更新数据集
    TCP编程(4): 发送电子邮件 MailMessage, SmtpClient, NetworkCredential
    强类型的数据集,在处理以直接附加方式的SQLServer的MDF文件时无法更新数据原因分析
    javascript调试测试,利用vs2008:智能对象类型感知,方法及属性提示;立即窗口调试等
  • 原文地址:https://www.cnblogs.com/nanyangzp/p/3849973.html
Copyright © 2020-2023  润新知