21xrx.com
2024-09-20 01:08:19 Friday
登录
文章检索 我的文章 写文章
如何将C++字符串赋值给数组?
2023-07-04 19:23:54 深夜i     --     --
C++ 字符串 赋值 数组

C++ 中,字符串是一种非常常见的数据类型,而数组则是另一个经常使用的数据结构。有时我们需要把字符串赋值给数组,这种转换可以通过以下几种方式完成:

1. 使用循环将字符串的每个字符依次赋值给数组的每个元素。

例如,如果我们想将字符串 "hello world" 赋值给一个名为 arr 的 char 数组,可以使用以下代码:

char arr[12];

const char* str = "hello world";

for(int i=0; i<12; i++) {

  arr[i] = str[i];

}

2. 使用 strncpy 函数将字符串的前 n 个字符赋值给数组。

strncpy 函数可以将一个字符串的某个子串赋值给一个 char 数组,其函数原型如下:

char* strncpy(char* dest, const char* src, size_t n);

其中,dest 是目标 char 数组的指针,src 是源字符串的指针,n 是要拷贝的字符数。注意,如果源字符串的长度不足 n,则只会将它的全部字符拷贝到目标数组中。

例如,我们可以使用以下代码将前 5 个字符 "hello" 赋值给名为 arr 的 char 数组:

char arr[6];

const char* str = "hello world";

strncpy(arr, str, 5);

arr[5] = '\0';

需要注意的是,在使用 strncpy 完成赋值后,还需要给目标数组的最后一个元素赋值 '\0',以便表示字符串的结束。

3. 使用 strcpy 函数将整个字符串赋值给数组。

strcpy 函数可以将一个字符串全部复制到一个 char 数组中,其函数原型如下:

char* strcpy(char* dest, const char* src);

其中,dest 是目标 char 数组的指针,src 是源字符串的指针。注意,如果源字符串的长度大于目标数组的长度,则会发生缓冲区溢出的错误。

例如,我们可以使用以下代码将字符串 "hello world" 赋值给名为 arr 的 char 数组:

char arr[12];

const char* str = "hello world";

strcpy(arr, str);

总之,在 C++ 中,将字符串赋值给数组可以通过循环、strncpy 函数或 strcpy 函数来完成。需要根据具体情况选择适合的方法,并确保不会发生缓冲区溢出的错误。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复