C - 从const char*复制到字符串

C++ - copying from const char* to string

本文关键字:复制 字符串 char const      更新时间:2023-10-16

有没有办法将字符串从 const char*复制到c 中的 string?我正在尝试做这样的事情:

#include <iostream>
#include <string.h>
using namespace std;
int main(){
    string s1;
    const char* pStr = "Sample Text";
    for(int i = 0; i < strlen(pStr); i++)
        s1[i] = pStr[i];
    cout<<s1<<endl;
    return 0;
}

在我的情况下, s1被证明是空的。

看一下CPPReference,std::basic_string的构造函数(std::string背后的模板类),替代方案(5):

const char* pStr = "Sample Text";
string s1(pStr);
cout<<s1<<endl;

c 11

#include <algorithm>
#include <iterator>
string s1;
const char* pStr = "Sample Text";
std::copy(pStr, pStr + strlen(pStr), std::back_inserter(s1));

另一种方式:

string s1;
const char* pStr = "Sample Text";
s1.assign(pStr);

您应该初始化S1的大小等于strlen(pstr)只需将每个字符附加到S1。P>

以特定大小启动S1作为下面给出的代码行。

string s1(strlen(pStr));

类似地,附加每个字符如下。

for(int i = 0; i < strlen(pStr); i++)
    s1.push_back(pStr[i]);

但是,除非您有调查每个字符的特定理由,否则我建议不要使用循环,而是启动S1。

string s1{ pStr };