• 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
    ..............................
    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 *
  • 相关阅读:
    Kattis
    HDU
    回溯法理解
    算法第5章上机实践报告
    贪心算法理解
    [模板] Dijkstra(堆优化)算法求最短路 Apare_xzc
    【文件管理系统】 Apaer_xzc
    [CCF] 201403-2 窗口 Apare_xzc
    [CCF] 201412-2 Z字形扫描 Apare_xzc
    [CCF] 201503-5 最小花费 Apare_xzc
  • 原文地址:https://www.cnblogs.com/buffer/p/1415497.html
Copyright © 2020-2023  润新知