在c ++中将字符数组转换为从索引i到j的字符串

时间:2014-03-17 14:28:22

标签: c++ char stdstring

我在c ++中有一组字符,例如:

char input[]="I love you";

我想从char [i]到char [j]创建一个std :: string。例如:

std::string output="love";

我该怎么办?

3 个答案:

答案 0 :(得分:2)

你可以这样做:

char input[]="I love you";
std::string str(input);

此处:http://www.cplusplus.com/reference/string/string/string/

如果您只想要部分,请写下:

std::string str(input + from, input + to);

答案 1 :(得分:0)

std::string有一个构造函数,它接受一个迭代器对。你可以用它替换指针..

示例:

#include <iostream>


int main() 
{
    char input[]="I love you";

    std::string str = std::string(&input[2], &input[6]);
    std::cout<<str;
    return 0;
}

答案 2 :(得分:0)

以下是一个示例,其中包含以下构造函数

basic_string(const charT* s, size_type n, const Allocator& a = Allocator());

被称为

#include <iostream>
#include <string>

int main()
{
    char input[] = "I love you";
    std::string s( input + 2, 4 );

    std::cout << s << std::endl;
}

或者您可以使用构造函数

basic_string(const basic_string& str, size_type pos, size_type n = npos,
             const Allocator& a = Allocator());

如本例所示

#include <iostream>
#include <string>

int main()
{
    char input[] = "I love you";
    std::string s( input, 2, 4 );

    std::cout << s << std::endl;
}