zoukankan      html  css  js  c++  java
  • CString 截取字符串全攻略

        函数在比较时不区分大小写

        参数:   为要和对象比较的字符串,也可以为CString对象

        返回值:如果两个字符串一样则返回0;

     

    int strcmp( const char *string1, const char *string2 );

     

    注:

        函数在比较时区分大小写

        参数:   为要和对象比较的字符串

     

        返回值:string1=string2返回0

                   string1>string2返回>0

                   string1<string2返回<0

     

    VC++   MFC中两CString字符串不能直接进行比较,需要转换成char*类型来进行比较。

    CString  a;

    CString  b;

    char *pa = (char*)((LPCTSTR)a);

    char *pb = (char*)((LPCTSTR)b);

    if(!strcmp(pa,pb))

    {

          MessageBox("pa==pb");

    }

    最近用到了这方面的东西,于是把网上所查到的总结了一下,以备查询之用 ^_^

    例程1:(csdn)

    文件xxxx.dll去掉后面的.dll 
    方法1、 
    char str[] = "xxxx.dll" 
    char*p; 
    p=strrchr(str, '.'); 
    *p = 0;

    方法2、 
    CString str="xxxx.dll"; 
    int n = str.ReverseFind('.') 
    str = str.Left(str.GetLength()-n-1);

    例程2:(csdn)

    取得一个字符串中第一个 '?'号之前的字符 
    方法1
    CString m_char,m_disp; 
    m_disp="jadfueiuajdf?"; 
    m_char="?"; 
    if (!m_char.IsEmpty()) 
    { 
    int index = m_disp.Find(m_char); 
    m_disp = m_disp.Right(m_disp.GetLength()-index-1); 
    } 
    返回m_disp就行

    方法2 
    CString temp=the.m_bb; 
    CString reslut=temp.Left(temp.Find("?")-1);

    例程3:(csdn) 
    一个CString类对象m_StrReceiveModem={ATS0=2

    OK 
    $03#} 
    如何截取从$开始的字符串 
    方法1

    CString m_StrReceiveModem; 
    int nPos = m_StrReceiveModem.Find('$'); 
    if(nPos >= 0) 
    { 
    CString sSubStr = m_StrReceiveModem.Mid(nPos);//包含$,不想包含时nPos+1 
    }

    方法2 
    CString m_StrReceiveModem; 
    int nPos = m_StrReceiveModem.Find('$'); 
    if(nPos >= 0) 
    { 
    CString sSubStr = m_StrReceiveModem.Right(StrReceiveModem.GetLength()-nPos); 
    } 
    }


    Split 函数 
    返回基于 0 的一维数组,其中包含指定数目的子字符串。

    Split(expression[, delimiter[, count[, start]]])

    参数 
    expression

    必选项。字符串表达式,包含子字符串和分隔符。如果 expression 为零长度字符串,Split 返回空数组,即不包含元素和数据的数组。

    delimiter

    可选项。用于标识子字符串界限的字符。如果省略,使用空格 ("") 作为分隔符。如果 delimiter 为零长度字符串,则返回包含整个 expression 字符串的单元素数组。

    count

    可选项。被返回的子字符串数目,-1 指示返回所有子字符串。

    Compare

    可选项。指示在计算子字符串时使用的比较类型的数值。有关数值,请参阅“设置”部分。

    设置 
    compare 参数可以有以下值:

    常数 值 描述 
    vbBinaryCompare 0 执行二进制比较。 
    vbTextCompare 1 执行文本比较。


    说明 
    下面的示例利用 Split 函数从字符串中返回数组。函数对分界符进行文本比较,返回所有的子字符串。

    Dim MyString, MyArray, Msg 
    MyString = "VBScriptXisXfun!" 
    MyArray = Split(MyString, "x", -1, 1) 
    ' MyArray(0) contains "VBScript". 
    ' MyArray(1) contains "is". 
    ' MyArray(2) contains "fun!". 
    Msg = MyArray(0) & " " & MyArray(1) 
    Msg = Msg & " " & MyArray(2) 
    MsgBox Msg

     

     

    //////////////////////////////////
    CString temp=the.m_bb;
    CString reslut=temp.Left(temp.Find("A")-1);

  • 相关阅读:
    AX 2012 Form and Parts
    AX 2012 SSRS print setting-报表打印输出设置
    AX 2012 关于parts 添加
    AX Dynamic 2012 tabletype:TempDB使用
    AX Dynamic 2012 SSRS 按行数分页
    AX Dynamic 2012 SSRS autorepot中取当前公司名、打印时间、打印页码
    AX Dynamics 去中文字符长度:中文字符当2个字符处理
    AX dynamics 2012 ssrs 开发报错:Native compiler return value: ‘[BC30179]
    在Ubuntu 下编译c语言
    在ubuntu加载flash的方法
  • 原文地址:https://www.cnblogs.com/htys/p/3347184.html
Copyright © 2011-2022 走看看