Solved

String Concat problem, not working

Posted on 2013-06-22
3
355 Views
Last Modified: 2013-06-23
I am trying to concat 9 edit controls. I don't see why this code is not working. Can anyone help me get this working?

    char szCombo1[2], szCombo2[2],szCombo3[2],
         szCombo4[2],szCombo5[2],szCombo6[2],
         szCombo7[2],szCombo8[2],szCombo9[2];
     
    GetDlgItemText(gl_hWnd, IDC_COMBO1, szCombo1, strlen(szCombo1));
    GetDlgItemText(gl_hWnd, IDC_COMBO2, szCombo2, strlen(szCombo2));
    GetDlgItemText(gl_hWnd, IDC_COMBO3, szCombo3, strlen(szCombo3));
    GetDlgItemText(gl_hWnd, IDC_COMBO4, szCombo4, strlen(szCombo4));
    GetDlgItemText(gl_hWnd, IDC_COMBO5, szCombo5, strlen(szCombo5));
    GetDlgItemText(gl_hWnd, IDC_COMBO6, szCombo6, strlen(szCombo6));
    GetDlgItemText(gl_hWnd, IDC_COMBO7, szCombo7, strlen(szCombo7));
    GetDlgItemText(gl_hWnd, IDC_COMBO8, szCombo8, strlen(szCombo8));
    GetDlgItemText(gl_hWnd, IDC_COMBO9, szCombo9, strlen(szCombo9));
              
    std::string strCombo1(szCombo1);
    std::string strCombo2(szCombo2);
    std::string strCombo3(szCombo3);
    std::string strCombo4(szCombo4);
    std::string strCombo5(szCombo5);
    std::string strCombo6(szCombo6);
    std::string strCombo7(szCombo7);
    std::string strCombo8(szCombo8);
    std::string strCombo9(szCombo9);
    std:string strUserCombo;
    strUserCombo = strCombo1+strCombo2+strCombo3+strCombo4+strCombo5+strCombo6+strCombo7+strCombo8+strCombo9;
    MessageBox(NULL,strUserCombo.c_str(),"DEBUG",NULL);

Open in new window


Thanks!
0
Comment
Question by:edvinson
  • 2
3 Comments
 
LVL 86

Expert Comment

by:jkr
ID: 39268181
In the above, 'strlen()' will return 0 or an undefined value, that's why that won't work. You need to provide the actual size of the buffer as the last argument. Are you sure that should be two bytes?
0
 
LVL 1

Author Comment

by:edvinson
ID: 39268385
I am not sure it should be two bytes, I am expecting the user to enter two digits, thats why i chose 2 bytes. should I only use 1? Or something different? What if I dont know how many characters they entered?
0
 
LVL 86

Accepted Solution

by:
jkr earned 500 total points
ID: 39268638
If you are expecting two digits, make that at least 3 bytes (the two digits plus the terminating NULL byte). However, a larger buffer won't hurt ;o)
Anyway, 'strlen()' is the wrong way, since it will report the lenght of the string stored in that buffer - and since there is none prior to your call, that's bound to fail.
0

Featured Post

Free Tool: Port Scanner

Check which ports are open to the outside world. Helps make sure that your firewall rules are working as intended.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Article by: SunnyDark
This article's goal is to present you with an easy to use XML wrapper for C++ and also present some interesting techniques that you might use with MS C++. The reason I built this class is to ease the pain of using XML files with C++, since there is…
This article shows you how to optimize memory allocations in C++ using placement new. Applicable especially to usecases dealing with creation of large number of objects. A brief on problem: Lets take example problem for simplicity: - I have a G…
The goal of the video will be to teach the user the concept of local variables and scope. An example of a locally defined variable will be given as well as an explanation of what scope is in C++. The local variable and concept of scope will be relat…
The viewer will learn how to clear a vector as well as how to detect empty vectors in C++.

830 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question