跳到主要内容
极客日志极客日志
首页博客AI提示词GitHub精选代理工具
搜索
|注册
博客列表
C++算法

C++ 新手入门:从基础语法到高级特性的完整教程

C++ 语言涵盖历史演变、环境搭建、基本语法、控制结构、函数、数组字符串、指针引用、面向对象、模板泛型及异常处理等核心内容。通过实例演示数据类型、内存管理、智能指针与现代 C++ 新特性,帮助初学者建立系统知识体系并掌握工程实践方法。

赛博行者发布于 2026/3/16更新于 2026/4/273 浏览
C++ 新手入门:从基础语法到高级特性的完整教程

C++ 新手入门:从基础语法到高级特性的完整教程

本教程旨在为初学者提供一条清晰的学习路径,涵盖 C++ 学习的各个方面。建议在学习过程中多做练习和项目,以加深对理论知识的理解。

第一章:C++ 简介

1.1 C++ 的历史与演变

C++ 由 Bjarne Stroustrup 在 1979 年开始开发,最初被称为 "C with Classes",用于扩展 C 语言的功能。1985 年发布了第一个完整版本,随后的标准化过程使其不断演化。主要的标准化版本包括 C++98、C++03、C++11、C++14、C++17 和 C++20。

1.2 C++ 的特点和优势

  • 面向对象编程:支持封装、继承和多态,提高代码的可重用性。
  • 高效性:为系统层面的编程提供了高效的内存管理机制。
  • 标准模板库 (STL):包含丰富的算法和数据结构,极大地提高了开发效率。
  • 多范式支持:支持过程式、面向对象和泛型编程。

1.3 C++ 的应用领域

  • 系统软件:操作系统、编译器和网络系统。
  • 应用软件:桌面应用、数据库和图形用户界面。
  • 游戏开发:高性能游戏引擎,如 Unreal Engine。
  • 嵌入式系统:汽车、家电和机器人设计。

1.4 C++ 的未来展望

随着技术的发展,C++ 正在与时俱进,越来越多的特性(如概念和协程)被引入以满足现代需求。社区对于可维护性和安全性的关注也在增加。

第二章:环境搭建

2.1 安装 C++ 编译器与 IDE

Windows
  • MinGW:轻量级的编译器,简单易用。
  • Visual Studio:功能强大的 IDE,适合 Windows 开发。
Linux

使用命令:sudo apt-get install g++ 或 sudo yum install gcc-c++。

Mac

使用 Homebrew:brew install gcc。

2.2 配置开发环境

确保将编译器添加到系统路径中。可使用命令行工具或终端进行编译和运行。

2.3 编译与运行示例程序

创建一个名为 hello.cpp 的文件,内容如下:

#include <iostream>
using namespace std;

int main() {
    cout << "Hello, C++!" << endl;
    return 0;
}

在命令行中,使用以下命令编译并运行程序:

g++ hello.cpp -o hello
./hello

第三章:基本语法

3.1 C++ 程序结构

一个基本的 C++ 程序通常包括头文件、主函数和必要的逻辑。

3.2 注释的使用

使用注释可以提高代码的可读性。

// 这是单行注释
/* 这是多行注释
   可以跨越多行 */

3.3 数据类型与变量

C++ 提供了种类丰富的内置数据类型。下表列出了七种基本类型:

类型关键字
布尔型bool
字符型char
整型int
浮点型float
双浮点型double
无类型void
宽字符型wchar_t

一些基本类型可以使用修饰符进行修饰,如 signed、unsigned、short、long。不同系统会有所差异,一字节为 8 位。默认情况下,int、short、long 都是带符号的。

类型位范围
char1 个字节-128 到 127 或 0 到 255
int4 个字节-2147483648 到 2147483647
long long8 个字节-9,223,372,036,854,775,807 到 9,223,372,036,854,775,807
double8 个字节+/- 1.7e +/- 308

注意,各种类型的存储大小与系统位数有关,目前通用的以 64 位系统为主。

下面实例会输出您电脑上各种数据类型的大小:

#include <iostream>
#include <limits>
using namespace std;

int main() {
    cout << "type: \t\t************size**************" << endl;
    cout << "bool: \t\t" << "所占字节数:" << sizeof(bool) << endl;
    cout << "char: \t\t" << "所占字节数:" << sizeof(char) << endl;
    cout << "int: \t\t" << "所占字节数:" << sizeof(int) << endl;
    cout << "double: \t" << "所占字节数:" << sizeof(double) << endl;
    cout << "string: \t" << "所占字节数:" << sizeof(string) << endl;
    return 0;
}

3.4 常量与输入输出

使用 const 关键字定义常量:

const float gravity = 9.81;

使用 cin 和 cout 进行输入输出:

#include <iostream>
using namespace std;

int main() {
    int number;
    cout << "请输入一个数字:";
    cin >> number;
    cout << "你输入的数字是:" << number << endl;
    return 0;
}

第四章:控制结构

4.1 条件语句

if 语句示例
int a = 10;
if (a > 0) {
    cout << "a 是正数" << endl;
} else {
    cout << "a 不是正数" << endl;
}
switch 语句示例
int day = 4;
switch (day) {
    case 1: cout << "星期一" << endl; break;
    case 2: cout << "星期二" << endl; break;
    default: cout << "不是工作日" << endl;
}

4.2 循环结构

for 循环示例
for (int i = 0; i < 5; i++) {
    cout << "i 的值:" << i << endl;
}
while 循环示例
int j = 0;
while (j < 5) {
    cout << "j 的值:" << j << endl;
    j++;
}
do-while 循环示例
int k = 0;
do {
    cout << "k 的值:" << k << endl;
    k++;
} while (k < 5);

第五章:函数

5.1 函数的定义与调用

函数用于将代码逻辑模块化,便于重用。

int add(int a, int b) {
    return a + b;
}

int main() {
    int result = add(5, 3);
    cout << "5 + 3 = " << result << endl;
    return 0;
}

5.2 参数传递方式

  • 值传递:将参数的副本传递给函数。
  • 引用传递:将参数的引用传递给函数(可以修改原变量)。
void modify(int &num) {
    num += 10;
}

int main() {
    int x = 5;
    modify(x);
    cout << "x 的值:" << x << endl;
    return 0;
}

5.3 函数重载

允许同名函数,但参数类型或数量不同。

float multiply(float a, float b) { return a * b; }
int multiply(int a, int b) { return a * b; }

5.4 默认参数与 inline 函数

默认参数示例
void greet(string name = "World") {
    cout << "Hello, " << name << "!" << endl;
}
inline 函数示例
inline int square(int x) {
    return x * x;
}

5.5 Lambda 表达式与函数对象

使用 lambda 表达式定义简单的函数。

auto add = [](int a, int b) { return a + b; };
cout << "Lambda add: " << add(5, 3) << endl;

第六章:数组与字符串

6.1 一维数组与多维数组

一维数组示例
int arr[5] = {1, 2, 3, 4, 5};
for (int i = 0; i < 5; i++) {
    cout << arr[i] << " ";
}
多维数组示例
int matrix[2][3] = {{1, 2, 3}, {4, 5, 6}};
for (int i = 0; i < 2; i++) {
    for (int j = 0; j < 3; j++) {
        cout << matrix[i][j] << " ";
    }
}

6.2 字符串的处理

C++ 字符串使用 std::string。

#include <string>
string str = "Hello, World!";
cout << "字符串长度:" << str.length() << endl;

6.3 常用字符串函数

string str = "Hello";
str += " World";
cout << str << endl;

第七章:指针与引用

7.1 指针的概念与使用

指针是存储变量地址的变量。

int a = 10;
int *p = &a;
cout << "a 的值:" << *p << endl;

7.2 指针与数组的关系

数组名代表数组的首地址,可以用指针访问数组元素。

int arr[3] = {1, 2, 3};
int *p = arr;
cout << *(p + 1) << endl;

7.3 引用的概念与使用

引用是变量的别名。

int b = 20;
int &r = b;
r = 30;
cout << "b 的值:" << b << endl;

7.4 指针与动态内存分配

使用 new 和 delete 进行动态内存管理。

int *ptr = new int;
*ptr = 42;
cout << "动态内存中的值:" << *ptr << endl;
delete ptr;

第八章:结构体与联合体

8.1 结构体的定义与使用

结构体用于将不同类型的数据组合在一起。

struct Person {
    string name;
    int age;
};
Person p;
p.name = "Alice";
p.age = 30;
cout << "姓名:" << p.name << ", 年龄:" << p.age << endl;

8.2 结构体数组

创建结构体数组以存储多个结构体实例。

Person people[2] = {{"Alice", 30}, {"Bob", 25}};
for (int i = 0; i < 2; i++) {
    cout << "姓名:" << people[i].name << ", 年龄:" << people[i].age << endl;
}

8.3 联合体的定义与使用

联合体用于节省内存,所有成员共享相同的内存。

union Data {
    int intValue;
    float floatValue;
};
Data data;
data.intValue = 10;
cout << "整数值:" << data.intValue << endl;
data.floatValue = 5.5;
cout << "浮点值:" << data.floatValue << endl;

8.4 枚举类型的使用

枚举用于定义一组命名的整数常量。

enum Color { RED, GREEN, BLUE };
Color c = GREEN;
cout << "选择的颜色值:" << c << endl;

第九章:类与对象

9.1 面向对象的基本概念

类是对象的蓝图,对象是类的实例。

9.2 类的定义与对象的创建

class Car {
public:
    string brand;
    int year;
    void display() {
        cout << "品牌:" << brand << ", 年份:" << year << endl;
    }
};

int main() {
    Car myCar;
    myCar.brand = "Toyota";
    myCar.year = 2020;
    myCar.display();
    return 0;
}

9.3 构造函数与析构函数

构造函数用于初始化对象,析构函数用于清理资源。

class Point {
public:
    int x, y;
    Point(int xVal, int yVal) : x(xVal), y(yVal) {}
    ~Point() {}
};
Point p(10, 20);

9.4 成员函数与属性

类的成员函数可以访问和修改类的属性。

class Circle {
public:
    double radius;
    double area() {
        return 3.14 * radius * radius;
    }
};
Circle c;
c.radius = 5;
cout << "圆的面积:" << c.area() << endl;

9.5 访问控制

C++ 提供了三种访问控制:public、private、protected。

class Box {
private:
    double width;
public:
    void setWidth(double w) { width = w; }
    double getWidth() { return width; }
};

第十章:继承与多态

10.1 继承的概念与实现

继承允许一个类从另一个类派生,重用代码。

class Animal {
public:
    void eat() { cout << "Eating..." << endl; }
};
class Dog : public Animal {
public:
    void bark() { cout << "Barking..." << endl; }
};
int main() {
    Dog d;
    d.eat();
    d.bark();
    return 0;
}

10.2 基类与派生类

基类提供公共接口,派生类扩展或修改基类的行为。

10.3 虚函数与多态

虚函数允许在派生类中重写基类的方法。

class Base {
public:
    virtual void show() {
        cout << "Base class" << endl;
    }
};
class Derived : public Base {
public:
    void show() override {
        cout << "Derived class" << endl;
    }
};
int main() {
    Base* b = new Derived();
    b->show();
    delete b;
    return 0;
}

10.4 多态的实现

通过基类指针调用派生类的重写方法。

Base* basePtr = new Derived();
basePtr->show();
delete basePtr;

第十一章:模板与泛型编程

11.1 函数模板

函数模板允许编写可以处理不同数据类型的函数。

template <typename T>
T add(T a, T b) {
    return a + b;
}

int main() {
    cout << "int: " << add(5, 10) << endl;
    cout << "double: " << add(5.5, 3.5) << endl;
    return 0;
}

11.2 类模板

类模板允许定义可以处理不同数据类型的类。

template <typename T>
class Pair {
private:
    T first, second;
public:
    Pair(T a, T b) : first(a), second(b) {}
    T getFirst() { return first; }
    T getSecond() { return second; }
};

int main() {
    Pair<int> p(10, 20);
    cout << "First: " << p.getFirst() << ", Second: " << p.getSecond() << endl;
    return 0;
}

11.3 模板特化

可以为特定类型创建模板特化。

template <>
class Pair<string> {
private:
    string first, second;
public:
    Pair(string a, string b) : first(a), second(b) {}
    string getConcatenated() { return first + second; }
};

int main() {
    Pair<string> p("Hello", " World");
    cout << "Concatenated: " << p.getConcatenated() << endl;
    return 0;
}

11.4 STL(标准模板库)简介

STL 提供了许多通用数据结构和算法,如 vector, list, map, set 等。

#include <vector>
int main() {
    vector<int> vec = {1, 2, 3, 4, 5};
    for (int num : vec) {
        cout << num << " ";
    }
    return 0;
}

第十二章:异常处理

12.1 异常的概念

异常处理用于处理运行时错误,确保程序的稳定性。

12.2 try, catch, throw 语句

使用 try 块捕获异常,使用 catch 块处理异常。

try {
    throw runtime_error("发生错误");
} catch (const runtime_error& e) {
    cout << "捕获到异常:" << e.what() << endl;
}

12.3 自定义异常类

在 C++ 中,你可以根据需要自定义异常类,以提供更具体的错误信息。

#include <iostream>
#include <exception>
#include <string>
using namespace std;

class MyException : public std::exception {
private:
    string message;
public:
    MyException(const string& msg) : message(msg) {}
    virtual const char* what() const noexcept override {
        return message.c_str();
    }
};

void riskyFunction(int value) {
    if (value < 0) {
        throw MyException("负数错误:不能为负数");
    }
    cout << "输入的值是:" << value << endl;
}

int main() {
    try {
        riskyFunction(-1);
    } catch (const MyException& e) {
        cout << "捕获到异常:" << e.what() << endl;
    }
    return 0;
}

第十三章:文件操作

13.1 文件的读写操作

示例:写入文件
#include <fstream>
#include <iostream>
using namespace std;

int main() {
    ofstream outFile("example.txt");
    if (outFile.is_open()) {
        outFile << "Hello, file!" << endl;
        outFile.close();
    }
    return 0;
}
示例:读取文件
#include <fstream>
#include <iostream>
using namespace std;

int main() {
    ifstream inFile("example.txt");
    string line;
    if (inFile.is_open()) {
        while (getline(inFile, line)) {
            cout << line << endl;
        }
        inFile.close();
    }
    return 0;
}

13.2 二进制文件与文本文件

示例:写入二进制文件
#include <fstream>
using namespace std;

int main() {
    ofstream outFile("binary.dat", ios::binary);
    int num = 42;
    outFile.write(reinterpret_cast<char*>(&num), sizeof(num));
    outFile.close();
    return 0;
}

13.3 文件流的使用

C++ 提供 fstream,用于同时读取和写入文件。

#include <fstream>
#include <iostream>
using namespace std;

int main() {
    fstream file("example.txt", ios::in | ios::out | ios::app);
    if (file.is_open()) {
        file << "追加内容!" << endl;
        file.seekg(0);
        string line;
        while (getline(file, line)) {
            cout << line << endl;
        }
        file.close();
    }
    return 0;
}

第十四章:标准库与命名空间

14.1 C++ 标准库概述

C++ 标准库包含了丰富的函数、类和模板,极大地提高了开发效率。常用的 STL 组件有容器、算法和迭代器。

14.2 常用标准库函数与算法

示例:使用 vector
#include <iostream>
#include <vector>
using namespace std;

int main() {
    vector<int> vec = {1, 2, 3, 4, 5};
    vec.push_back(6);
    for (int num : vec) {
        cout << num << " ";
    }
    cout << endl;
    return 0;
}
示例:使用 algorithm 库
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;

int main() {
    vector<int> vec = {5, 3, 1, 4, 2};
    sort(vec.begin(), vec.end());
    for (int num : vec) {
        cout << num << " ";
    }
    cout << endl;
    return 0;
}

14.3 命名空间的使用

命名空间用于组织代码,避免命名冲突。

namespace MyNamespace {
    void display() {
        cout << "Hello from MyNamespace!" << endl;
    }
}

int main() {
    MyNamespace::display();
    return 0;
}

第十五章:高级特性

15.1 智能指针的使用

智能指针自动管理内存,减少内存泄漏的风险。

示例:使用 std::unique_ptr
#include <iostream>
#include <memory>
using namespace std;

int main() {
    unique_ptr<int> ptr(new int(10));
    cout << "值:" << *ptr << endl;
    return 0;
}
示例:使用 std::shared_ptr
#include <iostream>
#include <memory>
using namespace std;

int main() {
    shared_ptr<int> p1(new int(20));
    {
        shared_ptr<int> p2 = p1;
        cout << "值:" << *p2 << endl;
    }
    cout << "值:" << *p1 << endl;
    return 0;
}

15.2 Lambda 表达式与并发编程

Lambda 表达式用于简化函数对象的定义,适合回调和并行执行。

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;

int main() {
    vector<int> vec = {1, 2, 3, 4, 5};
    for_each(vec.begin(), vec.end(), [](int n) {
        cout << n << " ";
    });
    cout << endl;
    return 0;
}

15.3 C++11/14/17/20 新特性

  • C++11:引入了 auto 关键字、范围 for 循环、nullptr、线程库等。
  • C++14:改进了 lambda 表达式,支持泛型 lambda。
  • C++17:引入了结构化绑定、if constexpr、std::optional 等。
  • C++20:引入了概念(concept)、范围(ranges)等。

第十六章:综合项目

16.1 项目设计与结构

设计一个小型项目,定义功能模块与类结构,使用面向对象的设计原则。

16.2 代码实现与管理

使用版本控制工具(如 Git)管理代码,记录每次更新。

16.3 代码调试与优化

使用调试工具(如 GDB 或 IDE 内置调试工具)进行调试,分析性能瓶颈并进行优化。

第十七章:学习资源与实践

17.1 推荐书籍

  • 《C++ Primer》 - Stanley B. Lippman
  • 《Effective C++》 - Scott Meyers
  • 《The C++ Programming Language》 - Bjarne Stroustrup

17.2 在线课程

主流视频平台及 Coursera、edX、Udacity 等平台的 C++ 课程。

17.3 开源项目与参与

参与 GitHub 上的 C++ 开源项目,学习最佳实践,提升编程能力。

17.4 C++ 社区与论坛

加入 C++ 相关的社区与讨论组(如 Stack Overflow),向他人学习。

第十八章:附录

18.1 C++ 关键字

列出 C++ 中的所有关键字,比如 class, public, private, virtual, template 等。

18.2 常用函数与算法汇总

  • 排序:sort()
  • 查找:find()
  • 复制:copy()
  • 变换:transform()

18.3 参考文献

  • C++ 标准文档
  • 各大编程网站的相关教程与文档。

目录

  1. C++ 新手入门:从基础语法到高级特性的完整教程
  2. 第一章:C++ 简介
  3. 1.1 C++ 的历史与演变
  4. 1.2 C++ 的特点和优势
  5. 1.3 C++ 的应用领域
  6. 1.4 C++ 的未来展望
  7. 第二章:环境搭建
  8. 2.1 安装 C++ 编译器与 IDE
  9. Windows
  10. Linux
  11. Mac
  12. 2.2 配置开发环境
  13. 2.3 编译与运行示例程序
  14. 第三章:基本语法
  15. 3.1 C++ 程序结构
  16. 3.2 注释的使用
  17. 3.3 数据类型与变量
  18. 3.4 常量与输入输出
  19. 第四章:控制结构
  20. 4.1 条件语句
  21. if 语句示例
  22. switch 语句示例
  23. 4.2 循环结构
  24. for 循环示例
  25. while 循环示例
  26. do-while 循环示例
  27. 第五章:函数
  28. 5.1 函数的定义与调用
  29. 5.2 参数传递方式
  30. 5.3 函数重载
  31. 5.4 默认参数与 inline 函数
  32. 默认参数示例
  33. inline 函数示例
  34. 5.5 Lambda 表达式与函数对象
  35. 第六章:数组与字符串
  36. 6.1 一维数组与多维数组
  37. 一维数组示例
  38. 多维数组示例
  39. 6.2 字符串的处理
  40. 6.3 常用字符串函数
  41. 第七章:指针与引用
  42. 7.1 指针的概念与使用
  43. 7.2 指针与数组的关系
  44. 7.3 引用的概念与使用
  45. 7.4 指针与动态内存分配
  46. 第八章:结构体与联合体
  47. 8.1 结构体的定义与使用
  48. 8.2 结构体数组
  49. 8.3 联合体的定义与使用
  50. 8.4 枚举类型的使用
  51. 第九章:类与对象
  52. 9.1 面向对象的基本概念
  53. 9.2 类的定义与对象的创建
  54. 9.3 构造函数与析构函数
  55. 9.4 成员函数与属性
  56. 9.5 访问控制
  57. 第十章:继承与多态
  58. 10.1 继承的概念与实现
  59. 10.2 基类与派生类
  60. 10.3 虚函数与多态
  61. 10.4 多态的实现
  62. 第十一章:模板与泛型编程
  63. 11.1 函数模板
  64. 11.2 类模板
  65. 11.3 模板特化
  66. 11.4 STL(标准模板库)简介
  67. 第十二章:异常处理
  68. 12.1 异常的概念
  69. 12.2 try, catch, throw 语句
  70. 12.3 自定义异常类
  71. 第十三章:文件操作
  72. 13.1 文件的读写操作
  73. 示例:写入文件
  74. 示例:读取文件
  75. 13.2 二进制文件与文本文件
  76. 示例:写入二进制文件
  77. 13.3 文件流的使用
  78. 第十四章:标准库与命名空间
  79. 14.1 C++ 标准库概述
  80. 14.2 常用标准库函数与算法
  81. 示例:使用 vector
  82. 示例:使用 algorithm 库
  83. 14.3 命名空间的使用
  84. 第十五章:高级特性
  85. 15.1 智能指针的使用
  86. 示例:使用 std::unique_ptr
  87. 示例:使用 std::shared_ptr
  88. 15.2 Lambda 表达式与并发编程
  89. 15.3 C++11/14/17/20 新特性
  90. 第十六章:综合项目
  91. 16.1 项目设计与结构
  92. 16.2 代码实现与管理
  93. 16.3 代码调试与优化
  94. 第十七章:学习资源与实践
  95. 17.1 推荐书籍
  96. 17.2 在线课程
  97. 17.3 开源项目与参与
  98. 17.4 C++ 社区与论坛
  99. 第十八章:附录
  100. 18.1 C++ 关键字
  101. 18.2 常用函数与算法汇总
  102. 18.3 参考文献
  • 💰 8折买阿里云服务器限时8折了解详情
  • GPT-5.5 超高智商模型1元抵1刀ChatGPT中转购买
  • 代充Chatgpt Plus/pro 帐号了解详情
  • 🤖 一键搭建Deepseek满血版了解详情
  • 一键打造专属AI 智能体了解详情
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • 基于 DeepSeek 和 Cursor 构建智能代码审查工具实战
  • 基于 SpringBoot 的 KTV 在线点歌系统设计与实现
  • JDK 17 新特性整理
  • CSS 元素显示模式详解:块级、行内及转换
  • 基于高阶控制障碍函数的端到端无人机高速避障方案
  • 接入第三方 OpenAI 兼容模型到 GitHub Copilot
  • Java 多线程与并发核心机制详解
  • 多模态基础大模型技术解析与展望
  • 使用 Ragas 为 RAG 生成测试集并评估特定文档表现
  • OmniSteward:基于大语言模型的智能家居与电脑控制工具
  • Neo4j 图数据库核心特性与 K8s 集群部署实战
  • 动态规划路径问题入门:核心定义与 LeetCode 例题解析
  • WorkBuddy 桌面智能体安装与实战指南
  • Microsoft Edge WebView2 运行时安装与故障排查指南
  • OpenClaw Windows 下 Docker 部署指南
  • HarmonyOS6 Filter 属性实战:动态滤镜与阴影配置详解
  • GitHub Copilot 代理与网络配置指南
  • 基于 LangChain 搭建本地知识库系统
  • VSCode 配合 Git 实现代码仓库回滚指南
  • 数据结构查找算法实战:顺序、折半及树形查找题解

相关免费在线工具

  • 加密/解密文本

    使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online

  • Gemini 图片去水印

    基于开源反向 Alpha 混合算法去除 Gemini/Nano Banana 图片水印,支持批量处理与下载。 在线工具,Gemini 图片去水印在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online

  • Markdown转HTML

    将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online

  • HTML转Markdown

    将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online