#include <stdio.h> #include <string.h> int main(void) { char str1[128] = {1,1,1,1,1,1,1}; char str2[] = "ab\0cde"; /* 途中に空文字のある文字列 */ int i; printf("コピー前 中身の確認\n"); for (i=0; i<7; i++) printf("%#x ",str1[i]); printf("\n"); memcpy(str1, str2, 5); printf("コピー後 中身の確認\n"); for (i=0; i<7; i++) printf("%#x ",str1[i]); printf("\n"); return 0; }【実行結果】
コピー前 中身の確認 0x1 0x1 0x1 0x1 0x1 0x1 0x1 コピー後 中身の確認 0x61 0x62 0 0x63 0x64 0x1 0x1 ※ 途中に '\0' があってもコピーできる。 また、最後に '\0' を不可しない。
▼戻る▼
「初心者のためのポイント学習C言語」 Copyright(c) 2000-2004 TOMOJI All Rights Reserved