C++ middle hexadecimal string to a number

  • 2020-05-27 06:50:03
  • OfStack

C++ 106 base string to number (numeric)

There are two main methods, both of which are the use of existing functions:

Method 1: sscanf ()

Function name: sscanf
Power: formats input from a string
int sscanf(char *string, char *format[,argument...] );

The above format is %. x is to format a string as a hexadecimal number

Example:


#include <stdio.h>  
void main()  
{  
  char* p = "0x1a";   
  int nValude = 0;     
  sscanf(p, "%x", &nValude);   
  printf("%d\r\n", nValude); 
} 

Output:

26

Method 2: strtol ()

Function name: strtol
Power: converts a string to a long integer
Usage: long strtol(char *str, char **endptr, int base);

So base up here is what we're going to convert to

Example:


#include <stdio.h>  
#include <stdlib.h>  
void main()  
{  
  char* p = "0x1b";   
  char* str;   
  long i = strtol(p, &str, 16);
  printf("%d\r\n", i);
 }  
 

Output:

27

In fact, there is another method, which is to use a string array initialized to 0~9~a~f, that is, a table of 106 corresponding table, which can be used to calculate the value of a string of 106 hexadecimal, but this is too much trouble and is not recommended.

If you have any questions, please leave a message or come to the site community to exchange discussion, thank you for reading, hope to help you, thank you for your support of the site!


Related articles: