C ++で独自のmemcpy()とmemmove()を記述します
memcpy() functionは、ソースの場所から宛先の場所にデータをコピーするために使用される組み込み関数です。
memcpy関数のプロトタイプ-
void * memcpy(void * destination_location、void * source_location、size_t size)
ソースから宛先にデータを1文字ずつコピーします。
ソリューションの実装を示すプログラム
例
#include<stdio.h> #include<string.h> void MemcpyFunc(void *dest, void *src, size_t n){ char *dataS = (char *)src; char *dataD = (char *)dest; for (int i=0; i<n; i++) dataD[i] = dataS[i]; } int main() { char dataS[] = "Hello!"; char dataD[100]; MemcpyFunc(dataS, dataD, strlen(dataS)+1); printf("Copied string is %s", dataD); return 0; }
出力
Copied string is Hello!
memmove() 関数はmemcpy()に似ており、charごとにソースから宛先charにデータをコピーします。これは、ソースと宛先が互いにオーバーラップするときに発生するmemcopy()の問題を克服します。
memmove()では、ソースと宛先の重複の問題を処理する一時配列を使用します。
ソリューションの実装を示すプログラム
例
#include<stdio.h> #include<string.h> void MemcpyFunc(void *dest, void *src, size_t n){ char *dataS = (char *)src; char *dataD = (char *)dest; char *temp = new char[n]; for (int i=0; i<n; i++) temp[i] = dataS[i]; for (int i=0; i<n; i++) dataD[i] = temp[i]; } int main() { char dataS[] = "Hello!"; char dataD[100]; MemcpyFunc(dataS, dataD, strlen(dataS)+1); printf("Moved string is %s", dataD); return 0; }
出力
Moved string is Hello!
-
システム内のint、float、double、charのサイズを検索するC++プログラム
C++のデータ型 C ++には多くのデータ型がありますが、最も頻繁に使用されるのはint、float、double、charです。これらのデータ型の詳細は次のとおりです- int -これは、通常4バイトのメモリスペースを必要とする整数データ型に使用されます。 フロート -これは、単精度浮動小数点値または10進値を格納するために使用されます。 float変数は通常4バイトのメモリスペースを必要とします。 ダブル -これは、倍精度浮動小数点値または10進値を格納するために使用されます。通常、double変数には8バイトのメモリスペースが必要です。 char -これ
-
独自のシーザー暗号エンコーダーの書き方
シーザー暗号について聞いたことがありますか ? ジュリアスシーザーはこのテクニックを使用して、敵からの秘密のメッセージを隠しました! シーザー暗号は、最も原始的な暗号化技術の1つです。 このシステムの背後にある主なアイデアは、文字を回転させることです。 x個のアルファベット上の位置 。 たとえば、x = 1の場合 、「A」は「B」になり、「C」は「D」になります。 では、これをコードでどのように実装するのでしょうか? よろしくお願いします。見た目ほど難しくはないことがわかりました。文字は数字(ASCIIコード)で表すことができるという事実を利用します。これにより、2つの数字を