strcpy(t[i],a[j],n);該語(yǔ)句的意思是:將某已知二維數(shù)組a的第j行前n個(gè)字符復(fù)制到另一個(gè)二維數(shù)組t的第i行中。給分吧
在撫遠(yuǎn)等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場(chǎng)前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供成都做網(wǎng)站、網(wǎng)站設(shè)計(jì)、外貿(mào)營(yíng)銷網(wǎng)站建設(shè) 網(wǎng)站設(shè)計(jì)制作定制制作,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),成都品牌網(wǎng)站建設(shè),成都營(yíng)銷網(wǎng)站建設(shè),成都外貿(mào)網(wǎng)站制作,撫遠(yuǎn)網(wǎng)站建設(shè)費(fèi)用合理。
在C語(yǔ)言當(dāng)中,對(duì)于數(shù)組復(fù)制要分兩種。
1)字符數(shù)組。
字符數(shù)組相當(dāng)于字符串,可以用標(biāo)準(zhǔn)函數(shù)strcpy()和strncpy()直接進(jìn)行字符串復(fù)制。
2)其他數(shù)組。
由于C語(yǔ)言的原始性,它并不具備操作符重載。所以對(duì)于數(shù)組復(fù)制,都需要對(duì)數(shù)組進(jìn)行遍歷,然后每個(gè)元素每個(gè)元素的一一復(fù)制。根據(jù)數(shù)組的大小和維數(shù),可選擇不同的循環(huán)或者遞歸進(jìn)行復(fù)制。
有兩種常用的方法。
1 對(duì)數(shù)組各個(gè)維循環(huán),遍歷每個(gè)元素,并將其賦值到目標(biāo)數(shù)組的對(duì)應(yīng)位置上。
缺點(diǎn):代碼相對(duì)復(fù)雜。
優(yōu)點(diǎn):可以不不同大小和形式的數(shù)組進(jìn)行交叉復(fù)制。
2 利用C語(yǔ)言中多維數(shù)組元素存儲(chǔ)連續(xù)性,使用memcpy函數(shù)整體復(fù)制。
缺點(diǎn):僅使用源數(shù)組要復(fù)制的數(shù)據(jù)是連續(xù)的,同時(shí)在目標(biāo)數(shù)組中以同樣順序連續(xù)復(fù)制的情況。
優(yōu)點(diǎn):代碼簡(jiǎn)單,一個(gè)函數(shù)調(diào)用即可完成賦值。相對(duì)第一種,執(zhí)行效率略高。
在日常編程過程中,我們可能經(jīng)常需要Copy各種數(shù)組,一般來說有以下幾種常見的方法:Array.Copy,IListT.Copy,BinaryReader.ReadBytes,Buffer.BlockCopy,以及System.Buffer.memcpyimpl,由于最后一種需要使用指針,所以本文不引入該方法。
本次測(cè)試,使用以上前4種方法,各運(yùn)行1000萬次,觀察結(jié)果。
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
namespace BenchmarkCopyArray
{
class Program
{
private const int TestTimes = 10000000;
static void Main()
{
var testArrayCopy = new TestArrayCopy();
TestCopy(testArrayCopy.TestBinaryReader, "Binary.ReadBytes");
TestCopy(testArrayCopy.TestConvertToList, "ConvertToList");
TestCopy(testArrayCopy.TestArrayDotCopy, "Array.Copy");
TestCopy(testArrayCopy.TestBlockCopy, "Buffer.BlockCopy");
Console.Read();
}
private static void TestCopy(Action testMethod, string methodName)
{
var stopWatch = new Stopwatch();
stopWatch.Start();
for (int i = 0; i TestTimes; i++)
{
testMethod();
}
testMethod();
stopWatch.Stop();
Console.WriteLine("{0}: {1} seconds, {2}.", methodName, stopWatch.Elapsed.Seconds, stopWatch.Elapsed.Milliseconds);
}
}
class TestArrayCopy
{
private readonly byte[] _sourceBytes = new byte[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
public void TestBinaryReader()
{
var binaryReader = new BinaryReader(new MemoryStream(_sourceBytes));
binaryReader.ReadBytes(_sourceBytes.Length);
}
public void TestConvertToList()
{
IListbyte bytesSourceList = new Listbyte(_sourceBytes);
var bytesNew = new byte[_sourceBytes.Length];
bytesSourceList.CopyTo(bytesNew, 0);
}
public void TestArrayDotCopy()
{
var bytesNew = new byte[_sourceBytes.Length];
Array.Copy(_sourceBytes, 0, bytesNew, 0, _sourceBytes.Length);
}
public void TestBlockCopy()
{
var bytesNew = new byte[_sourceBytes.Length];
Buffer.BlockCopy(_sourceBytes, 0, bytesNew, 0, _sourceBytes.Length);
}
}
}
文章題目:數(shù)組copy函數(shù)c語(yǔ)言,c++copy函數(shù)用法
本文路徑:http://m.rwnh.cn/article24/phjgje.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供域名注冊(cè)、動(dòng)態(tài)網(wǎng)站、網(wǎng)頁(yè)設(shè)計(jì)公司、網(wǎng)站建設(shè)、App設(shè)計(jì)、定制開發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)