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. managing char arrays

managing char arrays

Scheduled Pinned Locked Moved C / C++ / MFC
questiondata-structureshelptutorial
14 Posts 5 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.
  • E elephantstar

    How can I convert a string to an ASCII value and then store it in an element of a char array? For example, I'd like the 30 to be stored in element[18] of the array. This is what I have. Thanks! char array[20]; array = "Supernatural"; CString str = "40"; strcpy(array[18],str); error C2664: 'strcpy' : cannot convert parameter 1 from 'char' to 'char *'

    S Offline
    S Offline
    S Senthil Kumar
    wrote on last edited by
    #3

    You can't. It's not possible to store a string as an element in a character array. Maybe what you're looking for is an array of char * ? Regards Senthil _____________________________ My Blog | My Articles | WinMacro

    T E 2 Replies Last reply
    0
    • S S Senthil Kumar

      You can't. It's not possible to store a string as an element in a character array. Maybe what you're looking for is an array of char * ? Regards Senthil _____________________________ My Blog | My Articles | WinMacro

      T Offline
      T Offline
      toxcct
      wrote on last edited by
      #4

      yes he can. CString class provides a LPTSTR cast operator... so using strcpy() is possible as it uses this way 2 char arrays...


      TOXCCT >>> GEII power
      [toxcct][VisualCalc]

      S 1 Reply Last reply
      0
      • S S Senthil Kumar

        You can't. It's not possible to store a string as an element in a character array. Maybe what you're looking for is an array of char * ? Regards Senthil _____________________________ My Blog | My Articles | WinMacro

        E Offline
        E Offline
        elephantstar
        wrote on last edited by
        #5

        Yes, I do have an array of characters. I need to convert the ASCII value which is currently a string value to an ASCII character. Then store that ASCII character into the 18th element of the array. How do I go about doing that?

        D 1 Reply Last reply
        0
        • E elephantstar

          How can I convert a string to an ASCII value and then store it in an element of a char array? For example, I'd like the 30 to be stored in element[18] of the array. This is what I have. Thanks! char array[20]; array = "Supernatural"; CString str = "40"; strcpy(array[18],str); error C2664: 'strcpy' : cannot convert parameter 1 from 'char' to 'char *'

          D Offline
          D Offline
          David Crow
          wrote on last edited by
          #6

          elephantstar wrote: array = "Supernatural"; What is this, other than a syntax error? If you want array to contain the string literal, use either of:

          char array[20] = "Supernatural";
          ...
          char array[20];
          strcpy(array, "Supernatural");

          elephantstar wrote: strcpy(array[18],str); The error message tells you exactly what the problem is. array[18] is a char, but the first parameter of strcpy() is supposed to be a char*. Why are you using char in such a fashion? If this is an MFC application, use CString. Mixing the two types is seldom necessary.


          "One must learn from the bite of the fire to leave it alone." - Native American Proverb

          E 1 Reply Last reply
          0
          • E elephantstar

            Yes, I do have an array of characters. I need to convert the ASCII value which is currently a string value to an ASCII character. Then store that ASCII character into the 18th element of the array. How do I go about doing that?

            D Offline
            D Offline
            David Crow
            wrote on last edited by
            #7

            Are you talking about this:

            CString str = "40";
            array[18] = atoi(str);


            "One must learn from the bite of the fire to leave it alone." - Native American Proverb

            1 Reply Last reply
            0
            • T toxcct

              yes he can. CString class provides a LPTSTR cast operator... so using strcpy() is possible as it uses this way 2 char arrays...


              TOXCCT >>> GEII power
              [toxcct][VisualCalc]

              S Offline
              S Offline
              S Senthil Kumar
              wrote on last edited by
              #8

              No he can't :). It's not possible to store a string as an element in an array of characters. From what I understood, the OP wants to do this

              char arr[20] = "Senthil";
              arr[5] = "Kumar";

              which isn't logically possible. Regards Senthil _____________________________ My Blog | My Articles | WinMacro

              T 1 Reply Last reply
              0
              • D David Crow

                elephantstar wrote: array = "Supernatural"; What is this, other than a syntax error? If you want array to contain the string literal, use either of:

                char array[20] = "Supernatural";
                ...
                char array[20];
                strcpy(array, "Supernatural");

                elephantstar wrote: strcpy(array[18],str); The error message tells you exactly what the problem is. array[18] is a char, but the first parameter of strcpy() is supposed to be a char*. Why are you using char in such a fashion? If this is an MFC application, use CString. Mixing the two types is seldom necessary.


                "One must learn from the bite of the fire to leave it alone." - Native American Proverb

                E Offline
                E Offline
                elephantstar
                wrote on last edited by
                #9

                I want to store the value of CString str into the array. vtValue.ChangeType(VT_BSTR); str = (LPCSTR)((_bstr_t)vtValue.bstrVal); Then I want to store the exact same data type into array[18]. Yes, it is an MFC application. I'm using char so that I can manipulate the data in each element easily.

                D 1 Reply Last reply
                0
                • E elephantstar

                  I want to store the value of CString str into the array. vtValue.ChangeType(VT_BSTR); str = (LPCSTR)((_bstr_t)vtValue.bstrVal); Then I want to store the exact same data type into array[18]. Yes, it is an MFC application. I'm using char so that I can manipulate the data in each element easily.

                  D Offline
                  D Offline
                  David Crow
                  wrote on last edited by
                  #10

                  elephantstar wrote: vtValue.ChangeType(VT_BSTR); str = (LPCSTR)((_bstr_t)vtValue.bstrVal); What's with all of the BSTR and VARIANT stuff? Is this part of the original problem? elephantstar wrote: I'm using char so that I can manipulate the data in each element easily. CString objects can be manipulated just as easily.


                  "One must learn from the bite of the fire to leave it alone." - Native American Proverb

                  E 1 Reply Last reply
                  0
                  • D David Crow

                    elephantstar wrote: vtValue.ChangeType(VT_BSTR); str = (LPCSTR)((_bstr_t)vtValue.bstrVal); What's with all of the BSTR and VARIANT stuff? Is this part of the original problem? elephantstar wrote: I'm using char so that I can manipulate the data in each element easily. CString objects can be manipulated just as easily.


                    "One must learn from the bite of the fire to leave it alone." - Native American Proverb

                    E Offline
                    E Offline
                    elephantstar
                    wrote on last edited by
                    #11

                    Sorry, I should have included the rest of the code. I'm using ADO to query some values. CString str, str2; _variant_t vtValue; vtValue = t_Rec->Fields->GetItem("NAME")->GetValue(); vtValue.ChangeType(VT_BSTR); str = (LPCSTR)((_bstr_t)vtValue.bstrVal); Instead of using char array[20], you're suggesting I just work with CString then. But if I do use CString, the following code fails. What am I doing wrong? Thanks.

                    vtValue = t_Rec->Fields->GetItem("NUMBER")->GetValue();
                    vtValue.ChangeType(VT_BSTR);
                    str2 = (LPTSTR)((_bstr_t)vtValue.bstrVal);
                    char x;
                    x = atoi(str2);
                    str.GetAt(18, str2); ///Debug Assertion Failed

                    D 1 Reply Last reply
                    0
                    • E elephantstar

                      Sorry, I should have included the rest of the code. I'm using ADO to query some values. CString str, str2; _variant_t vtValue; vtValue = t_Rec->Fields->GetItem("NAME")->GetValue(); vtValue.ChangeType(VT_BSTR); str = (LPCSTR)((_bstr_t)vtValue.bstrVal); Instead of using char array[20], you're suggesting I just work with CString then. But if I do use CString, the following code fails. What am I doing wrong? Thanks.

                      vtValue = t_Rec->Fields->GetItem("NUMBER")->GetValue();
                      vtValue.ChangeType(VT_BSTR);
                      str2 = (LPTSTR)((_bstr_t)vtValue.bstrVal);
                      char x;
                      x = atoi(str2);
                      str.GetAt(18, str2); ///Debug Assertion Failed

                      D Offline
                      D Offline
                      David Crow
                      wrote on last edited by
                      #12

                      elephantstar wrote: str.GetAt(18, str2); ///Debug Assertion Failed This must be .Net as the CString::GetAt() method that comes with VC++ v6 only takes one parameter. In any case, what line of what file is firing the assertion?


                      "One must learn from the bite of the fire to leave it alone." - Native American Proverb

                      E 1 Reply Last reply
                      0
                      • D David Crow

                        elephantstar wrote: str.GetAt(18, str2); ///Debug Assertion Failed This must be .Net as the CString::GetAt() method that comes with VC++ v6 only takes one parameter. In any case, what line of what file is firing the assertion?


                        "One must learn from the bite of the fire to leave it alone." - Native American Proverb

                        E Offline
                        E Offline
                        elephantstar
                        wrote on last edited by
                        #13

                        Nevermind. I went back to using char and it works just fine. Thanks Dave! Your help is always appreciated.

                        1 Reply Last reply
                        0
                        • S S Senthil Kumar

                          No he can't :). It's not possible to store a string as an element in an array of characters. From what I understood, the OP wants to do this

                          char arr[20] = "Senthil";
                          arr[5] = "Kumar";

                          which isn't logically possible. Regards Senthil _____________________________ My Blog | My Articles | WinMacro

                          T Offline
                          T Offline
                          toxcct
                          wrote on last edited by
                          #14

                          oh yes, i did this it like this. i saw (arr + 5) = "Kumar"; which would mean writing from the 5th position in the array. but ok, you're right, i appology.


                          TOXCCT >>> GEII power
                          [toxcct][VisualCalc]

                          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