C++ String::copy() 函数



C++ 的 std::string::copy 用于将字符串对象中指定数量的字符复制到字符数组中。它接受三个参数:指向目标字符数组的指针、要复制的字符数以及源字符串中的起始位置。

此函数不会在复制内容的末尾包含空字符。

语法

以下是 std::string::copy() 函数的语法。

size_t copy (char* s, size_t len, size_t pos = 0) const;

参数

  • s − 指示指向字符数组的指针。
  • len − 指示要复制的字符数。
  • pos − 指示要复制的第一个字符的位置。

返回值

它没有任何返回值。

异常

如果抛出异常,则字符串不会发生任何更改。

示例 1

以下是如何使用 C++ 查找 std::string::copy 的示例。

#include <iostream>
#include <string>
int main() {
   char buffer[20];
   std::string str("Sairamkrishna Mammahe...");
   std::size_t length = str.copy(buffer, 6, 5);
   buffer[length] = '\0';
   std::cout << "buffer contains: " << buffer << '\n';
   return 0;
}

输出

让我们编译并运行以上程序,这将产生以下结果:

buffer contains: mkrish        

示例 2

在程序中,我们通过赋值初始化了 stringX1、stringX2 和 stringX5,并声明了 stringX3 和 stringX4 来指示实体的存在及其位置。

#include <iostream>
#include <cstring>
using namespace std;
int main() {
   char stringX1[] = " Good morning ";
   char stringX2[] = " Tutorialspont Company ";
   char stringX3[20];
   char stringX4[20];
   char stringX5[] = " TPC ";
   strcpy(stringX2, stringX1);
   strcpy(stringX3, " Copy successful ");
   strcpy(stringX4, stringX5);
   cout << "stringX1: " << stringX1 << "\nstrigX2: " << stringX2 << " \nstringX3: " << stringX3 << " \nstringX4: " << stringX4;
   return 0;
}

输出

如果我们运行以上代码,它将生成以下输出。

stringX1:  Good morning 
strigX2:  Good morning  
stringX3:  Copy successful  
stringX4:  TPC 

示例 3

在此程序中,src 字符串包含值“Tutorialspoint”,我们使用 copy() 函数将源字符串复制到目标字符串。

#include <iostream>
#include <string>
using namespace std;
int main() {
   string src = " Tutorialspoint";
   char dest[15];
   cout << " source string = " << src << '\n';
   src.copy(dest, sizeof src);
   cout << " destination string = " << dest;
   return 0;
}

输出

以下是以上代码的输出。

source string = Tutorialspoint
destination string = Tutorialspoint                 

示例 4

在下面的程序中,我们传递位置作为参数。因此,它使用 copy() 函数将字符串 x 的子字符串复制到字符串 x1。

#include <iostream>
#include <string>
using namespace std;
int main() {
   string x = "Tutorialspoint company";
   char x1[22];
   x.copy(x1, 12, 0);
   x1[10] = '\0';
   cout << " String x1 = " << x1;
   return 0;
}

输出

以下是以上代码的输出。

String x1 = Tutorialsp               
string.htm
广告