📌  相关文章
📜  在 C++ 中交换字符串的第一个和最后一个字符(1)

📅  最后修改于: 2023-12-03 15:07:37.701000             🧑  作者: Mango

在 C++ 中交换字符串的第一个和最后一个字符

在 C++ 中交换字符串的第一个和最后一个字符,我们可以使用以下方法:

方法一:使用std::string的成员函数

使用 std::string 的成员函数 front()back() 可以获取字符串的第一个和最后一个字符,然后使用 std::swap() 函数实现交换。

#include <iostream>
#include <string>

int main() {
    std::string str = "hello world";
    std::swap(str.front(), str.back());
    std::cout << str << std::endl; // output: dello worlh
    return 0;
}
方法二:使用指针操作字符串

我们也可以使用指针来操作字符串,获取第一个和最后一个字符的地址,然后使用指针交换它们的值。

#include <iostream>

int main() {
    char str[] = "hello world";
    char *p = str;
    char *q = str + strlen(str) - 1;
    std::swap(*p, *q);
    std::cout << str << std::endl; // output: dello worlh
    return 0;
}

我们先定义一个字符数组 str[],然后使用指针 pq 分别指向字符串的第一个字符和最后一个字符,长度减 1 是因为字符串的下标是从 0 开始的。最后使用 std::swap() 函数交换两个指针指向的字符值。

总结

以上是在 C++ 中交换字符串的第一个和最后一个字符的两种方法,使用 std::string 的成员函数可以更加方便,而使用指针操作字符串则可以更好地理解字符串的存储方式。