Solved

Help... Output is a single char not a string...

Posted on 2006-06-29
9
181 Views
Last Modified: 2010-04-24
Here is what I have...

unsigned char ItemName8[16];

struct Names
{
   struct
   {
      unsigned char Name[16];
   } Zone[176];

...

*nm.Zone[ItemNumber8].Name = *ItemName8;

cppString = (const char *)nm.Zone[ItemNumber8].Name;
Memo1->AppendText("    Item Name: " + gcnew System::String(cppString.c_str()) + "\r\n");

My question is: when I output the ItemName8 directly, it will output the entire array. When I store the value of ItemNumber8 to the nm.Zone[].Name struct and output that, it just outputs the first char.

Any thoughts? Code is helpful...

Thanks!
0
Comment
Question by:demilune
  • 5
  • 4
9 Comments
 
LVL 12

Expert Comment

by:rajeev_devin
Comment Utility
>> *nm.Zone[ItemNumber8].Name = *ItemName8;
>> cppString = (const char *)nm.Zone[ItemNumber8].Name;

This two statements looks very strange to me.
ItemNumber8 is a char string.
But above you are using it as an index.
Why ?

0
 

Author Comment

by:demilune
Comment Utility
I was told to do that... A friend said it would copy the entire char array and not just once char in the array.
0
 
LVL 12

Expert Comment

by:rajeev_devin
Comment Utility
Can you post the complete code.
0
 

Author Comment

by:demilune
Comment Utility
My code is 1400 lines long... everything that is related to this issue is posted in the question...
0
How to run any project with ease

Manage projects of all sizes how you want. Great for personal to-do lists, project milestones, team priorities and launch plans.
- Combine task lists, docs, spreadsheets, and chat in one
- View and edit from mobile/offline
- Cut down on emails

 
LVL 12

Expert Comment

by:rajeev_devin
Comment Utility
If you are trying to copy the string then do this
strcpy(nm.Zone[index].Name, ItemName8);
0
 
LVL 12

Expert Comment

by:rajeev_devin
Comment Utility
Don't use ItemName8 as index.
0
 

Author Comment

by:demilune
Comment Utility
When I do that, I get the compiler error:

error C2664: 'strcpy' : cannot convert parameter 1 from 'unsigned char [16]' to 'char *'
        Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
0
 
LVL 12

Accepted Solution

by:
rajeev_devin earned 250 total points
Comment Utility
Simply typecast it
strcpy((char*)nm.Zone[index].Name, (char*)ItemName8);
0
 

Author Comment

by:demilune
Comment Utility
It works :)

If you don't mind, is there any other way to do it. The strcpy function was depreciated and I would like to stay with current "mothods" if possible...

warning C4996: 'strcpy' was declared deprecated
        C:\Program Files\Microsoft Visual Studio 8\VC\include\string.h(73) : see declaration of 'strcpy'
        Message: 'This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_DEPRECATE. See online help for details.'
0

Featured Post

6 Surprising Benefits of Threat Intelligence

All sorts of threat intelligence is available on the web. Intelligence you can learn from, and use to anticipate and prepare for future attacks.

Join & Write a Comment

The following diagram presents a diamond class hierarchy: As depicted, diamond inheritance denotes when two classes (e.g., CDerived1 and CDerived2), separately extending a common base class (e.g., CBase), are sub classed simultaneously by a fourt…
In Easy String Encryption Using CryptoAPI in C++ (http://www.experts-exchange.com/viewArticle.jsp?aid=1193) I described how to encrypt text and recommended that the encrypted text be stored as a series of hexadecimal digits -- because cyphertext may…
Sending a Secure fax is easy with eFax Corporate (http://www.enterprise.efax.com). First, Just open a new email message.  In the To field, type your recipient's fax number @efaxsend.com. You can even send a secure international fax — just include t…
This video explains how to create simple products associated to Magento configurable product and offers fast way of their generation with Store Manager for Magento tool.

771 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

Need Help in Real-Time?

Connect with top rated Experts

11 Experts available now in Live!

Get 1:1 Help Now