C言語のポインタを用いて文字列のコピーを行う方法は?
ポインタを使用することで文字列のコピーが可能であり、以下の手順で行えます。
- ネイティブ文字列配列を作成し、それに十分なメモリを割り当てます。
- ポインタを使用して、元となる文字列のアドレスをポインタ変数に代入します。
- ループを使用して、元の文字列の各文字を宛先文字列に1文字ずつコピーし、文字列終了記号「\0」に達したら終了します。
- 最後に、ターゲットの文字列の末尾に、文字列終了記号’\0’を追加します。
次に、ポインタを使用して文字列のコピーを行う実装の一例を示します。
#include <stdio.h>
void mystrcpy(char* dest, const char* src) {
while (*src != '\0') {
*dest = *src;
dest++;
src++;
}
*dest = '\0';
}
int main() {
char source[] = "Hello, World!";
char destination[20]; // 目标字符串数组
mystrcpy(destination, source); // 调用自定义的字符串拷贝函数
printf("拷贝后的字符串为:%s\n", destination);
return 0;
}
上記のコードを実行すると、以下の結果が出力されます。
拷贝后的字符串为:Hello, World!
このサンプルにおける目的の文字列配列は、ソース文字列と文字列終端記号を入れるのに十分な大きさであることに注意してください。目的の文字列配列のサイズが十分でない場合は、メモリオーバーフローまたは未定義の動作を引き起こす可能性があります。