Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. General Programming
  3. C / C++ / MFC
  4. String to Number

String to Number

Scheduled Pinned Locked Moved C / C++ / MFC
question
12 Posts 6 Posters 0 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • C Offline
    C Offline
    color Aljechin
    wrote on last edited by
    #1

    I have one CString which contains "MX1200" as its value. I want 1200 from this and I want to store it in a integer variable. How do I do this? Can you show a small code snippet? Aljechin Alexander

    W A C L H 5 Replies Last reply
    0
    • C color Aljechin

      I have one CString which contains "MX1200" as its value. I want 1200 from this and I want to store it in a integer variable. How do I do this? Can you show a small code snippet? Aljechin Alexander

      W Offline
      W Offline
      Waldermort
      wrote on last edited by
      #2

      look at the two functions atoi() itoa() I maybe wrong but I think the atoi() function will only convert the numerical characters from the string, and skip over the non-numerical. I don't use MFC myself, but there maybe a better way to do this using the MFC classes, I will leave that to the MFC guru's.

      C 1 Reply Last reply
      0
      • W Waldermort

        look at the two functions atoi() itoa() I maybe wrong but I think the atoi() function will only convert the numerical characters from the string, and skip over the non-numerical. I don't use MFC myself, but there maybe a better way to do this using the MFC classes, I will leave that to the MFC guru's.

        C Offline
        C Offline
        color Aljechin
        wrote on last edited by
        #3

        I know its the CRT function atoi(). But its not working for some reason. Thats why I asked for a code snippet. Someone please helpme out. Aljechin

        W 2 Replies Last reply
        0
        • C color Aljechin

          I know its the CRT function atoi(). But its not working for some reason. Thats why I asked for a code snippet. Someone please helpme out. Aljechin

          W Offline
          W Offline
          Waldermort
          wrote on last edited by
          #4

          perhaps you could post the code you have created, this would give us a better idea of what you are trying and where you may be going wrong.

          1 Reply Last reply
          0
          • C color Aljechin

            I have one CString which contains "MX1200" as its value. I want 1200 from this and I want to store it in a integer variable. How do I do this? Can you show a small code snippet? Aljechin Alexander

            A Offline
            A Offline
            Aqueel
            wrote on last edited by
            #5

            Here is a way to do that. 1. Get length of your CString. 2. Declare a char array of that length and copy your CString to that array. 3. Now the number can easily be extracted from that array. Here is the code to copy CString to char array int size = myCString.GetLength(); char *array =(char*)malloc(size + 1); strcpy(array, myCString); If problem remains, do let us know. Good Luck We Believe in Excellence www.aqueelmirza.cjb.net

            1 Reply Last reply
            0
            • C color Aljechin

              I know its the CRT function atoi(). But its not working for some reason. Thats why I asked for a code snippet. Someone please helpme out. Aljechin

              W Offline
              W Offline
              Waldermort
              wrote on last edited by
              #6

              Ok, I just tested what I thought and I was half right. atoi will stop at the first non-numerical char, so if your string start with letter you have to remove them.

              char \*txt = "MX2001";
              char \*buffer = new char\[10\];
              int pos = 0;
              int result;
              // strip the non-numerical chars
              for (int i=0;i<strlen(txt);i++) {
                  if ((txt\[i\] > 0x29)&&(txt\[i\] < 0x40)) { // if numerical
                      buffer\[pos\] = txt\[i\];
                      pos++;
                  }
              }
              buffer\[pos\] = 0x00; // add a terminating null
              result = atoi(buffer);
              

              Or if your string is fairly constant and always the first two are letter you could

              result = atoi(&txt[2]);

              -- modified at 1:50 Wednesday 22nd March, 2006 Don't forget to use delete or you will have memory leaks;

              1 Reply Last reply
              0
              • C color Aljechin

                I have one CString which contains "MX1200" as its value. I want 1200 from this and I want to store it in a integer variable. How do I do this? Can you show a small code snippet? Aljechin Alexander

                C Offline
                C Offline
                color Aljechin
                wrote on last edited by
                #7

                Thank you all. Actually I had been a little dumb. I forgot I was doing a unicode build and should have used _wtoi function and not the atoi function :D. Thanks for all of your kind replies. Aljechin

                N A 2 Replies Last reply
                0
                • C color Aljechin

                  Thank you all. Actually I had been a little dumb. I forgot I was doing a unicode build and should have used _wtoi function and not the atoi function :D. Thanks for all of your kind replies. Aljechin

                  N Offline
                  N Offline
                  Nibu babu thomas
                  wrote on last edited by
                  #8

                  Aljechin should have used _wtoi function and not the atoi function :D.

                  Always try to use tchar version of functions. Like _ttoi. This way you don't have to worry whether it's unicode or not.


                  Nibu thomas Software Developer

                  W 1 Reply Last reply
                  0
                  • N Nibu babu thomas

                    Aljechin should have used _wtoi function and not the atoi function :D.

                    Always try to use tchar version of functions. Like _ttoi. This way you don't have to worry whether it's unicode or not.


                    Nibu thomas Software Developer

                    W Offline
                    W Offline
                    Waldermort
                    wrote on last edited by
                    #9

                    Your welcome. I wish more people would say thankyou after they have been helped and more people to state what they did wrong or how they fixed the problem. The message boards (not only this site) are filled with questions and no answers or gratitude. It makes searching for a solution a hard task.

                    1 Reply Last reply
                    0
                    • C color Aljechin

                      Thank you all. Actually I had been a little dumb. I forgot I was doing a unicode build and should have used _wtoi function and not the atoi function :D. Thanks for all of your kind replies. Aljechin

                      A Offline
                      A Offline
                      Aqueel
                      wrote on last edited by
                      #10

                      You can always rank helpful replies (bottom right) We Believe in Excellence www.aqueelmirza.cjb.net -- modified at 3:25 Wednesday 22nd March, 2006

                      1 Reply Last reply
                      0
                      • C color Aljechin

                        I have one CString which contains "MX1200" as its value. I want 1200 from this and I want to store it in a integer variable. How do I do this? Can you show a small code snippet? Aljechin Alexander

                        L Offline
                        L Offline
                        lawrence2000
                        wrote on last edited by
                        #11

                        CString str=_T("MX1200" ); int position; for(int i=0 , str.length(),i++) if (str.getat(i) <= '9') and (str.getat(i) >= '0') { position =i; //exit; } str =str.left(position); int yourInteger =atoi(LPCTSTR(str));

                        1 Reply Last reply
                        0
                        • C color Aljechin

                          I have one CString which contains "MX1200" as its value. I want 1200 from this and I want to store it in a integer variable. How do I do this? Can you show a small code snippet? Aljechin Alexander

                          H Offline
                          H Offline
                          Hamid Taebi
                          wrote on last edited by
                          #12

                          maybe it is some helpful to you http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vclib/html/_crt_data_conversion.asp[^]

                          1 Reply Last reply
                          0
                          Reply
                          • Reply as topic
                          Log in to reply
                          • Oldest to Newest
                          • Newest to Oldest
                          • Most Votes


                          • Login

                          • Don't have an account? Register

                          • Login or register to search.
                          • First post
                            Last post
                          0
                          • Categories
                          • Recent
                          • Tags
                          • Popular
                          • World
                          • Users
                          • Groups