char *pArray[]={"捐款","会员","积分",.} char *subStr="积分"; 与 char *subStr=pArray[1];区别

解决方案 »

  1.   

    char *pArray[]={"捐款","会员","积分",.} 
    ========
    定义一个指针数组,你上面的数组有三个成员,数组的类型是char *.char *subStr="积分"; 
    ========
    这是定义一个字符指针。char *subStr=pArray[1];
    =========
    pArray[1]是一个char *,所以可以给左边的char *subStr;
      

  2.   


    这样好像结果是不一样的阿 char *pArray[]={"捐款","会员","积分};
    for(int i=0;i<sizeof(pArray)/4;i++)
    {
    char *subStr="会员";
    int *charStep=setCharStep(subStr);
    if(sundaySearch(mainStr,subStr,charStep)>=0)
    {
    CString sFindStr;
    sFindStr.Format("%s",subStr);
    int nPos=st.Find(sFindStr,0);
    int nSize=sizeof(sFindStr);
    ((CEdit *)GetDlgItem(IDC_CONTENT))->SetFocus();
    ((CEdit *)GetDlgItem(IDC_CONTENT))->SetSel(nPos,nPos+nSize);
    st.Format("内容中含有非法字符:%s",sFindStr);
    MessageBox(st,"提示信息",MB_ICONINFORMATION);
    return 0;
    break;
    }
    }
    MessageBox("内容中未含非法字符!","提示信息",MB_ICONINFORMATION);
    return 1;
    这个能成功检查出来输入的文字是否包含了"会员"
    ===============================
    char *pArray[]={"捐款","会员","积分};
    for(int i=0;i<sizeof(pArray)/4;i++)
    {
    char *subStr=pArray[i];;
    int *charStep=setCharStep(subStr);
    if(sundaySearch(mainStr,subStr,charStep)>=0)
    {
    CString sFindStr;
    sFindStr.Format("%s",subStr);
    int nPos=st.Find(sFindStr,0);
    int nSize=sizeof(sFindStr);
    ((CEdit *)GetDlgItem(IDC_CONTENT))->SetFocus();
    ((CEdit *)GetDlgItem(IDC_CONTENT))->SetSel(nPos,nPos+nSize);
    st.Format("内容中含有非法字符:%s",sFindStr);
    MessageBox(st,"提示信息",MB_ICONINFORMATION);
    return 0;
    break;
    }
    }
    MessageBox("内容中未含非法字符!","提示信息",MB_ICONINFORMATION);
    return 1;这个就不行了.
      

  3.   

    问题在于:"会员"是常量字符串,虽然它可以赋值给char*,实际上并不完全合格。如果这个char*需要被写入,结果就是未定义的。所以好的程序员会避免使用
    char * p = "会员"这种方法, 既然是C++,当然尽量使用现有的字符串类(CString,std::string),如果不用类,至少也得把"会员"拷贝到一个可写缓冲区去
      

  4.   

    被调用的
    sundaySearch(char *mainStr, char *subStr, int *charStep)
    {
    ..............
    }
    for(int i=0;i<sizeof(pArray)/4;i++)
    {
    char *subStr="会员";
    int *charStep=setCharStep(subStr);
    if(sundaySearch(mainStr,pArray[i],charStep)>=0)

    成功 for(int i=0;i<sizeof(pArray)/4;i++)
    {
    char *subStr="会员";
    int *charStep=setCharStep(pArray[i]);
    if(sundaySearch(mainStr,subStr,charStep)>=0)失败......
      

  5.   

    char *subStr=pArray[i];
    int *charStep=setCharStep(subStr);
    又行了,