c语言中 strcpy函数是否可以用于二维数组?

如题所述

可以的,二维数组本身就是由多个一维数组组成的,对二维数组其中的一维数组分别使用strcpy即可:

#include <iostream>
using namespace std;
void main()
{
char* str = "hello world!";
char arr[100][100];
strcpy(arr[0], str);
cout<<arr[0]<<endl; //输出hello world!
}

 如果不是逐个一维数组拷贝,那可以使用memcpy函数:

#include <iostream>
using namespace std;
void main()
{
char* str = "hello world!";
char arr[100][100];
memcpy(arr,str,13);
cout<<arr[0]<<endl; //输出hello world!
}

温馨提示:内容为网友见解,仅供参考
第1个回答  2014-11-08
不可以。
如果非要用strcpy,你必须一行一行的来使用strcpy。
希望能帮到你。
第2个回答  2019-11-20
是的
如果要用于二维数组,需要取二维数组中的第一维。

char
a[100][100];
gets(a[20]);
这样可以。
gets(a);
理论上也能用,等效于a[0],但一些编译器会报错。
一般不这么写。
第3个回答  2014-11-08
strcpy提供了字符串的复制即strcpy只用于字符串复制,并且它不仅复制字符串内容之外,还会复制字符串的结束符
他只能适用char 型数组
对于int 类型不适用

你可以使用memcpy()
第4个回答  2020-03-27
谢谢你们 解答了我的疑惑
相似回答