簡體   English   中英

代碼錯誤MFC Visual Studio中的CString?

[英]code error CString in MFC Visual Studio?

如果我添加arr(1)= HelloWorld,就可以了!

但是如果我添加arr(1)= Hello,world或Hello_World或Hello World

不會!

我的代碼片段附在下面:

void CMFCApplicationFileDlg::OnClickBtnToData()
{

CString dataIn;
m_txtDataInput.GetWindowTextW(dataIn);  
int dem = 0;
int check = 0;
CString mangMaHoa[] = { _T("A"), _T("B"), _T("C"), _T("D"), _T("E"), _T("F"), _T("G"), _T("H"), _T("I"), _T("J"), _T("K"), _T("L"), _T("M"), _T("O"), _T("P"), _T("Q"), _T("R"), _T("S"), _T("T"), _T("U"), _T("V"), _T("W"), _T("X"), _T("Y"), _T("Z") };
int num = arr[1].GetLength();
CString mahoa, chuoiSauMaHoa;

for (int i = 0; i < arr[1].GetLength(); i++)
{
    mahoa = arr[1].Mid(i, 1);
    dem = 0;
    check = 0;

        for (int j = 0; j < 26; j++)
        {
            if (mangMaHoa[j].CompareNoCase(mahoa) == 0)
            {
                check += 1;
                if (j >= 23)
                {
                    dem = j + 3;
                    dem = dem - 26;
                }
                else
                {
                    dem = j + 3;

                }
                chuoiSauMaHoa += mangMaHoa[dem];
                break;
            }
            else
            {

                continue;
            }
        }
        if (check == 0)
        {
            chuoiSauMaHoa += mahoa;
        }       
}
m_txtDataOutput.SetWindowTextW(chuoiSauMaHoa);

}

if (check == 0)
{
    chuoiSauMaHoa += mahoa;
}   

我希望得到所有角色

屏幕截圖:

屏幕截圖:

提前致謝!

您在很大程度上依賴於幻數26,該幻數假定為數組mangMaHoa的長度。

但是實際上它的長度為25(您打算省略字母N嗎?)

所以外的界失誤將要發生特別搜索您的特殊字符時,_space

與其假設您認為數組的大小,不如說應該防御並確定數組的實際大小

size_t alphabet = sizeof(mangMaHoa) / sizeof(mangMaHoa[0]);

並改用結果。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM