C言語では文字列常用関数stracatとstrcpyの使い方を紹介します。
strcpyプロトタイプ宣言:extern char*strcpy(char*dest、const char*src);頭ファイル:芬include<string.h>機能:srcアドレスからNULL終了符を含む文字列をdestで始まるアドレス空間説明にコピーする:srcとdestが指すメモリ領域は重複してはいけなく、かつdestはsrcの文字列を格納するために十分な空間が必要である。destを指すポインタを返します。関数の実現:はC++の中にあります。機能は、srcが指す文字列をdestの末尾に追加して、\0'を追加します。srcとdestが指すメモリ領域は重複してはいけないと説明し、destはsrcの文字列を格納するために十分な空間が必要である。destを指すポインタを返します。関数実装:
/**********************
* C strcpy
* : 。
* ANSI-C99 , , NULL。
* :
* strDestination
* strSource
***********************/
char *strcpy(char *strDestination,const char *strSource)
{
assert(strDestination!=NULL && strSource!=NULL);
char *strD=strDestination;
while ((*strD++=*strSource++)!='\0');
return strDestination;
}
/*
GNU-C ( ):
*/
char* strcpy(char *d, const char *s)
{
char *r=d;
while((*d++=*s++));
return r;
}
/* while((*d++=*s++)); : ,
, NULL , */
stracatプロトタイプextern char*stracat(char*dest、char*src);使用法芰include
// const,
char *strcat(char *strDest, const char *strSrc)
{
// return address, assert address
char *address = strDest;
assert((strDest != NULL) && (strSrc != NULL)); // 0
while(*strDest) // while(*strDest!='\0')
{
// while(*strDest++), , strDest ++,
// strDest '\0' 。/ ++; *strDest
// '\0'。
strDest++;
}
while(*strDest++ = *strSrc++)
{
NULL; // ++,
} // *strDest='\0';
return address; // ,
}