21xrx.com
2024-11-22 07:03:53 Friday
登录
文章检索 我的文章 写文章
C++字符串转换为16进制
2023-07-05 13:38:42 深夜i     --     --
C++ 字符串 转换 16进制

C++是一种强大的编程语言,通过它可以实现许多功能。其中,字符串转换为16进制是一个常见的需求。在本文中,我们将介绍如何使用C++将字符串转换为16进制。

首先,我们需要使用C++语言中的以下函数:

1. std::string: 这个函数是用来存储字符串的,它可以存储任何类型的字符串,包括数字、字母等等。

2. std::hex: 这个函数是用来将数字转换为16进制的,它会返回一个16进制的字符串。

接下来,我们可以使用C++中的 for 循环遍历字符串,然后使用 std::hex 函数将每个字符转换为16进制。下面是具体的代码:


#include <iostream>

#include <string>

#include <iomanip>

int main(){

  std::string str = "Hello World!";

  for (char c : str){

    std::cout << std::hex << std::setw(2) << std::setfill('0') << (int)c << " ";

  }

  return 0;

}

在该代码中,我们定义了一个字符串 str,然后使用 for 循环遍历该字符串中的每个字符。对于每个字符,我们使用 std::hex 函数将其转换为16进制,并使用 std::setw 和 std::setfill 函数控制输出位数和填充字符。最后,我们使用 std::cout 将16进制的字符打印出来。

如果你想将16进制字符串转换回原始字符串,可以使用以下代码:


#include <iostream>

#include <string>

#include <sstream>

int main(){

  std::string hex_str = "48656c6c6f20576f726c6421"; // Hello World! 的16进制形式

  std::stringstream ss;

  for (size_t i = 0; i < hex_str.length(); i += 2){

    std::string byte = hex_str.substr(i, 2);

    char chr = (char)std::stoi(byte, nullptr, 16);

    ss << chr;

  }

  std::string str = ss.str();

  std::cout << str << std::endl;

  return 0;

}

在这个例子中,我们假设我们已经有一个16进制的字符串 "48656c6c6f20576f726c6421",该字符串表示 "Hello World!"。我们使用 stringsteam 将16进制字符串转换为原始字符串。具体来说,我们使用 for 循环遍历该16进制字符串并将其分割成2个字符的字符串。然后,我们使用 std::stoi 函数将该2个字符的字符串转换为一个整数,并将其转换为字符。最后,我们使用 stringsteam 将这些字符组装成字符串并将其打印出来。

总之,使用C++将字符串转换为16进制并将其转换回原始字符串是非常简单的。我们可以使用 std::hex 等C++函数完成这些任务,这些函数在实现各种应用程序时非常有用。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复