如何提供来自外部源的字符串,例如来自c++的HTTP请求



我被指派编写一个c++程序,指定如下:

"编写一个方法来反转来自外部源(如HTTP请求)的任意字符串,该字符串作为以空结尾的char*提供。"

所以:我做了这个:

#include <iostream>
#include <cstring>
using namespace std;
void reverse(char *s)
{
    cout << s <<endl;
    int len = strlen(s);
    char *head = s;
    char *tail = &s[len-1];
    while (head < tail)
        swap(*head++, *tail--);
    cout << s <<endl;
}
int main()
{
    char test[] = "monkey";
    reverse(test);
}

这个正确地反转了monkey,但我不知道我是否正确地完成了这个问题。它说字符串来自"外部源,如来自HTTP请求"的部分?这是什么意思?我如何让我的程序做到这一点呢?

这可能是在谈论接受命令行参数:http://en.cppreference.com/w/cpp/language/main_function

你可以在你的代码中这样做:

int main(int argc, char* argv[]){
    for(int i = 1; i < argc; ++i){
        reverse(argv[i]);
    }
    return 0;
}

这将允许您从命令行接受字符串并反转它们。注意,每个空格将创建一个单独的字符串。

您可以看到我的main的实时示例,以及您的reverse实现,以及输入:hello world

另外,c++已经提供了一个reverse实现。您可以在这里看到一个实例:http://coliru.stacked-crooked.com/a/3d554697336958cb

你可以测试你想要的任何字符串到你的可执行文件中。Corilu很好用,你可以输入命令行参数传入,你可以看到我传入了:

hello world

但是如果你在你的机器上构建可执行文件,你可以给它输入任何你想要的参数

最新更新