zoukankan      html  css  js  c++  java
  • C++ int,char,string,CString类型转换

    /*从字符串的左边截取n个字符*/
    char * left(char *dst,char *src, int n)
    {
     char *p = src;
     char *q = dst;
     int len = strlen(src);
     if(n>len) n = len;
     /*p += (len-n);*/   /*从右边第n个字符开始*/
     while(n--) *(q++) = *(p++);
     *(q++)='\0'; /*有必要吗?很有必要*/
     return dst;
    }

    /*从字符串的中间截取n个字符*/
    char * mid(char *dst,char *src, int n,int m) /*n为长度,m为位置*/
    {
     char *p = src;
     char *q = dst;
     int len = strlen(src);
     if(n>len) n = len-m;    /*从第m个到最后*/
     if(m<0) m=0;    /*从第一个开始*/
     if(m>len) return NULL;
     p += m;
     while(n--) *(q++) = *(p++);
     *(q++)='\0'; /*有必要吗?很有必要*/
     return dst;
    }

    /*从字符串的右边截取n个字符*/
    char * right(char *dst,char *src, int n)
    {
     char *p = src;
     char *q = dst;
     int len = strlen(src);
     if(n>len) n = len;
     p += (len-n);   /*从右边第n个字符开始*/
     while(*(q++) = *(p++));
     return dst;
    }

    char *scat(const char *a,const char *b)     /*返回合并的字符串的地址*/
    {
     char *rt=(char*)malloc(sizeof(char)*(strlen(a)+strlen(b)));
     strcpy(rt,a);
     return strcat(rt,b);
    }

     

    #include <string> //使用C++标准库的string类时

    using namespace std; //同上

    #include <sstream>

    #include <iostream>

    #include <stdlib.h> //要将string类和int类型直接转换最好有这些包含,

    //因为自己写一个转换函数比较方便,函数定义参考如下

    string getstring ( const int n )

    {

    std::stringstream newstr;

    newstr<<n;

    return newstr.str();

    }

    string 转 CString

    CString.format(”%s”, string.c_str());

    char 转 CString

    CString.format(”%s”, char*);

    char 转 string

    string s(char *);

    string 转 char *

    char *p = string.c_str();

    CString 转 string

    string s(CString.GetBuffer());

    1,string -> CString

    CString.format(”%s”, string.c_str());

    用c_str()确实比data()要好.

    2,char -> string

    string s(char *);

    只能初始化,在不是初始化的地方最好还是用assign().

    3,CString -> string

    string s(CString.GetBuffer());

    GetBuffer()后一定要ReleaseBuffer(),否则就没有释放缓冲区所占的空间.

    《C++标准函数库》中说的

    有三个函数可以将字符串的内容转换为字符数组和C—string

    1.data(),返回没有”\0“的字符串数组

    2,c_str(),返回有”\0“的字符串数组

    3,copy()

    —————————————————————

    CString与int、char*、char[100]之间的转换- -

    CString与int、char*、char[100]之间的转换- -

    CString互转int

    将字符转换为整数,可以使用atoi、_atoi64或atol。

    而将数字转换为CString变量,可以使用CString的Format函数。如

    CString s;

    int i = 64;

    s.Format(”%d”, i)

    Format函数的功能很强,值得你研究一下。

    void CStrDlg::OnButton1()

    {

    // TODO: Add your control notification handler code here

    CString

    ss=”1212.12″;

    int temp=atoi(ss);

    CString aa;

    aa.Format(”%d”,temp);

    AfxMessageBox(”var is ” + aa);

    }

    sart.Format(”%s”,buf);

    CString互转char*

    ///char * TO cstring

    CString strtest;

    char * charpoint;

    charpoint=”give string a value”;

    strtest=charpoint;

    ///cstring TO char *

    charpoint=strtest.GetBuffer(strtest.GetLength());

    标准C里没有string,char *==char []==string

    可以用CString.Format(”%s”,char *)这个方法来将char *转成CString。要把CString转成char *,用操作符(LPCSTR)CString就可以了。

    CString转换 char[100]

    char a[100];

    CString str(”aaaaaa”);

    strncpy(a,(LPCTSTR)str,sizeof(a));

  • 相关阅读:
    Android 主题theme说明 摘记
    Android开发 去掉标题栏方法 摘记
    安卓项目五子棋代码详解(二)
    关于 ake sure class name exists, is public, and has an empty constructor that is public
    百度地图3.0实现图文并茂的覆盖物
    android onSaveInstanceState()及其配对方法。
    关于集成科大讯飞语音识别的 一个问题总结
    android 关于 webview 控制其它view的显示 以及更改view数据失败的问题总结
    C# 解析 json Newtonsoft果然强大,代码写的真好
    c#数据类型 与sql的对应关系 以及 取值范围
  • 原文地址:https://www.cnblogs.com/chuncn/p/1397520.html
Copyright © 2011-2022 走看看