c++ - 如何向后输出char数组中的每个单词

标签 c++

我必须创建一个函数来反转已写入 char 数组中的单词。

char reverse(char m[50]) {
    for (int i = 0; i <= m['\0']; i++) {
        for (int j = m['\0']-1; j >= m[0]; j--) {
            m[i] = m[j];
        }
    }
}

这是我想到的代码,它会输出如下内容:

输入:我是新人
输出:wen ma I

我需要的是:

输入:我是新人
输出:我马文

希望您理解我在这里的意思,因为我对编程还很陌生,确实需要帮助。

最佳答案

如果您想要一个 C++ 解决方案,那么以下应该可行:

#include <iostream>
#include <string>
#include <algorithm>

int main()
{
    std::string str = "I am new";
    auto begin = str.begin();
    while (begin != str.end())
    {
        auto end = std::find(begin, str.end(), ' ');
        std::reverse(begin, end);
        if (end == str.end())
        {
            break;
        }
        begin = end + 1;
    }
    std::cout << str << "\n";
}

关于c++ - 如何向后输出char数组中的每个单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53836713/

相关文章:

c++ - 如何在我的 C 版 Tic Tac Toe 中修复我的输入验证?

c++ - 不可调用对象的示例赋值运算符?

c++ - 嵌套 if 或直接返回

c++ - 对`vtable 的 undefined reference

c++ - 如何使 Python 运行时安全?

c++ - 我真的应该为我的应用程序使用一个 qss 文件,而不是为每个 (UI) 类使用一个 qss 文件吗?

c++ - zwave/cpp - 从恒温器获取值(温度和湿度)

c++ - FTP 客户端中的 recv()

c++ - 我可以通过类型访问 "component"吗?

c++ - WNetAddConnection2 返回错误 1200