Solved

atoh ?

Posted on 2011-02-17
11
1,705 Views
Last Modified: 2012-06-27
Hi, is where a funktion atoh ?

I need to get the hex value from a ascii string that include hex values.

hex_value = atoh(ascii_str);

Thanks

// Ludde72
0
Comment
Question by:Ludde72
  • 4
  • 3
  • 3
  • +1
11 Comments
 
LVL 3

Expert Comment

by:imaki06
ID: 34914808
What would be the type of the hex_value-variable?

If it is a string then try this:
char hex_value[33];
int i=atoi(ascii_str);
itoa(i,hex_value,16);
0
 
LVL 16

Expert Comment

by:sjklein42
ID: 34914815
try scanf

int i;
char str[]="abc";
scanf(str,"%x",&i);
print("%x",i); 

Open in new window

0
 
LVL 31

Accepted Solution

by:
Zoppo earned 500 total points
ID: 34914892
@imaki06: What you posted converts an integer generated from a decimal string into a hex string - as I understood the question is about the other direction, converting a hex string to an integer

@sjklein42: the function you mean is 'sscanf', nos 'scanf'

@Ludde72: Beside 'sscanf' you can even use 'strtol' to get the integer value from a hex string, i.e.:

int hex_value = strtol( ascii_str, 0, 16 );

You need to take care that the string contains only the hex data without a prefix like '0x'.

Hope that helps,

ZOPPO
0
Comprehensive Backup Solutions for Microsoft

Acronis protects the complete Microsoft technology stack: Windows Server, Windows PC, laptop and Surface data; Microsoft business applications; Microsoft Hyper-V; Azure VMs; Microsoft Windows Server 2016; Microsoft Exchange 2016 and SQL Server 2016.

 
LVL 32

Expert Comment

by:phoffric
ID: 34914907
itoa is not standard C. For standard ANSI C
see strtol : Convert string to long integer
or
strtoul : Convert string to unsigned long integer
This last link says: If the base is 16, the sequence may optionally be preceded by "0x" or "0X", which is ignored.
0
 
LVL 32

Expert Comment

by:phoffric
ID: 34914934
Hi Zoppo,
I just saw your comment about the prefix '0x' w.r.t. strtol.
Here is a quote from the strtol link:
"The sequence may optionally be preceded by a plus or minus sign and, if base is 16, an optional "0x" or "0X" prefix."
so maybe (as mentioned for strtoul), the "0x" or "0X", will also be ignored.
0
 
LVL 31

Expert Comment

by:Zoppo
ID: 34914962
@phoffric: Thanks, I didn't remember this correctly - fine that you pointed this out ...
0
 
LVL 16

Expert Comment

by:sjklein42
ID: 34914986
Zoppo,

sscanf is C++

scanf is C

0
 
LVL 32

Expert Comment

by:phoffric
ID: 34915013
sscanf is C and C++ as well as scanf. Their functionality is different. See link:
    http://www.cplusplus.com/reference/clibrary/cstdio/sscanf/
Sample code shows
#include <stdio.h>
a standard C library.
/* sscanf example */
#include <stdio.h>

int main ()
{
  char sentence []="Rudolph is 12 years old";
  char str [20];
  int i;

  sscanf (sentence,"%s %*s %d",str,&i);
  printf ("%s -> %d\n",str,i);
  
  return 0;
}

Open in new window

0
 
LVL 31

Expert Comment

by:Zoppo
ID: 34915015
@sjklein42: This is not correct! 'stdio.h', which is the standard C input/output header (http://en.wikipedia.org/wiki/Stdio.h) declares these 'scanf' functions:

    int fscanf(FILE *stream, const char *format, ...);
    int scanf(const char *format, ...);
    int sscanf(const char *str, const char *format, ...);

So, this has nothing to do with C++.

Further, do you know a 'scanf' function in 'C' which takes it's input from a string instead of the standard input stream?
0
 
LVL 16

Expert Comment

by:sjklein42
ID: 34915032
Zoppo,

You're right.  I meant sscanf.

http://msdn.microsoft.com/en-us/library/zkx076cy.aspx

Apologies
0
 
LVL 31

Expert Comment

by:Zoppo
ID: 34915046
No problem :o)
0

Featured Post

NAS Cloud Backup Strategies

This article explains backup scenarios when using network storage. We review the so-called “3-2-1 strategy” and summarize the methods you can use to send NAS data to the cloud

Question has a verified solution.

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

Suggested Solutions

Title # Comments Views Activity
Certified Pentester Exam - need assistance on compiling an exploit 6 397
Inorder binary search tree 5 166
SCANF - LIMIT THE NUMBER OF CHARARACTERS 1 63
smtp c source code 7 69
Have you thought about creating an iPhone application (app), but didn't even know where to get started? Here's how: ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ Important pre-programming comments: I’ve never tri…
Windows programmers of the C/C++ variety, how many of you realise that since Window 9x Microsoft has been lying to you about what constitutes Unicode (http://en.wikipedia.org/wiki/Unicode)? They will have you believe that Unicode requires you to use…
The goal of this video is to provide viewers with basic examples to understand recursion in the C programming language.
Video by: Grant
The goal of this video is to provide viewers with basic examples to understand and use nested-loops in the C programming language.

810 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