• (转)CString,int,string,char*之间的转换


    <C++标准函数库>中说的 
    有三个函数可以将字符串的内容转换为字符数组和C—string 
    1.data(),返回没有”\0“的字符串数组 
    2,c_str(),返回有”\0“的字符串数组 
    3,copy()
    .................................................................
    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
        std::string s = "12";
        int i = atoi(s.c_str());
    .................................................................
    char* 转 int
        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 change[20];
       std::string s = itoa(119,change,10);
       对于itoa一定要注意第三个参数


       radix

       Base of value; must be in the range 2 – 36
    .................................................................
    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 *  

  • 相关阅读:
    Mobile phones(poj1195)
    Matrix(poj2155)
    1080
    1266
    codeforces626D . Jerry's Protest
    字符串格式化
    附加MySQL数据库的方法
    avaScript中变量的声明和赋值
    选择法排序
    JavaScript中变量的类型
  • 原文地址:https://www.cnblogs.com/chengxin1982/p/1647766.html
Copyright © 2020-2023  润新知