å·²ç¥strcpyå½æ°çååæ¯ï¼
char * strcpy(char * strDest,const char * strSrc);
1.ä¸è°ç¨åºå½æ°ï¼å®ç°strcpyå½æ°ã
2.解é为ä»ä¹è¦è¿åchar *ã
解说ï¼
1.strcpyçå®ç°ä»£ç
char * strcpy(char * strDest,const char * strSrc)
{
if ((strDest==NULL)||(strSrc==NULL)) //[ (file://[/)1]
throw "Invalid argument(s)"; //[ (file://[/)2]
char * strDestCopy=strDest; //[ (file://[/)3]
while ((*strDest++=*strSrc++)!='\0'); //[ (file://[/)4]
return strDestCopy;
}
é误çåæ³ï¼
[1]
(A)ä¸æ£æ¥æéçæææ§ï¼è¯´æçé¢è
ä¸æ³¨é代ç çå¥å£®æ§ã
(B)æ£æ¥æéçæææ§æ¶ä½¿ç¨((!strDest)||(!strSrc))æ(!(strDest&&strSrc))ï¼è¯´æçé¢è
对Cè¯è¨ä¸ç±»åçéå¼è½¬æ¢æ²¡ææ·±å»è®¤è¯ãå¨æ¬ä¾ä¸char *转æ¢ä¸ºboolå³æ¯ç±»åéå¼è½¬æ¢ï¼è¿ç§åè½è½ç¶çµæ´»ï¼ä½æ´å¤çæ¯å¯¼è´åºéæ¦çå¢å¤§åç»´æ¤ææ¬åé«ãæ以C++ä¸é¨å¢å äºboolãtrueãfalseä¸ä¸ªå
³é®å以æä¾æ´å®å
¨çæ¡ä»¶è¡¨è¾¾å¼ã
(C)æ£æ¥æéçæææ§æ¶ä½¿ç¨((strDest==0)||(strSrc==0))ï¼è¯´æçé¢è
ä¸ç¥é使ç¨å¸¸éç好å¤ãç´æ¥ä½¿ç¨åé¢å¸¸éï¼å¦æ¬ä¾ä¸ç0ï¼ä¼åå°ç¨åºçå¯ç»´æ¤æ§ã0è½ç¶ç®åï¼ä½ç¨åºä¸å¯è½åºç°å¾å¤å¤å¯¹æéçæ£æ¥ï¼ä¸ä¸åºç°ç¬è¯¯ï¼ç¼è¯å¨ä¸è½åç°ï¼çæçç¨åºå
å«é»è¾é误ï¼å¾é¾æé¤ãè使ç¨NULL代æ¿0ï¼å¦æåºç°æ¼åé误ï¼ç¼è¯å¨å°±ä¼æ£æ¥åºæ¥ã
[2]
(A)return new string("Invalid argument(s)");ï¼è¯´æçé¢è
æ ¹æ¬ä¸ç¥éè¿åå¼çç¨éï¼å¹¶ä¸ä»å¯¹å
åæ³æ¼ä¹æ²¡æè¦æå¿ãä»å½æ°ä¸è¿åå½æ°ä½å
åé
çå
åæ¯ååå±é©çåæ³ï¼ä»æéæ¾å
åçä¹å¡æç»ä¸ç¥æ
çè°ç¨è
ï¼ç»å¤§å¤æ°æ
åµä¸ï¼è°ç¨è
ä¸ä¼éæ¾å
åï¼è¿å¯¼è´å
åæ³æ¼ã
(B)return 0;ï¼è¯´æçé¢è
没æææ¡å¼å¸¸æºå¶ãè°ç¨è
æå¯è½å¿è®°æ£æ¥è¿åå¼ï¼è°ç¨è
è¿å¯è½æ æ³æ£æ¥è¿åå¼ï¼è§åé¢çé¾å¼è¡¨è¾¾å¼ï¼ãå¦æ³è®©è¿åå¼è©è´è¿åæ£ç¡®å¼åå¼å¸¸å¼çåéåè½ï¼å
¶ç»æå¾å¾æ¯ä¸¤ç§åè½é½å¤±æãåºè¯¥ä»¥æåºå¼å¸¸æ¥ä»£æ¿è¿åå¼ï¼è¿æ ·å¯ä»¥åè½»è°ç¨è
çè´æ
ã使é误ä¸ä¼è¢«å¿½ç¥ãå¢å¼ºç¨åºçå¯ç»´æ¤æ§ã
[3]
(A)å¿è®°ä¿ååå§çstrDestå¼ï¼è¯´æçé¢è
é»è¾æç»´ä¸ä¸¥å¯ã
[4]
(A)循ç¯åæwhile (*strDest++=*strSrc++);ï¼å[1](B)ã
(B)循ç¯åæwhile (*strSrc!='\0') *strDest++=*strSrc++;ï¼è¯´æçé¢è
对边çæ¡ä»¶çæ£æ¥ä¸åã循ç¯ä½ç»æåï¼strDestå符串çæ«å°¾æ²¡ææ£ç¡®å°å ä¸'\0'ã
2.è¿åstrDestçåå§å¼ä½¿å½æ°è½å¤æ¯æé¾å¼è¡¨è¾¾å¼ï¼å¢å äºå½æ°çâéå å¼âãåæ ·åè½çå½æ°ï¼å¦æè½åçå°æé«çå¯ç¨æ§ï¼èªç¶å°±æ´å çæ³ã
é¾å¼è¡¨è¾¾å¼çå½¢å¼å¦ï¼
int iLength=strlen(strcpy(strA,strB));
åå¦ï¼
char * strA=strcpy(new char[10],strB);
è¿åstrSrcçåå§å¼æ¯é误çãå
¶ä¸ï¼æºå符串è¯å®æ¯å·²ç¥çï¼è¿åå®æ²¡ææä¹ãå
¶äºï¼ä¸è½æ¯æå½¢å¦ç¬¬äºä¾ç表达å¼ãå
¶ä¸ï¼ä¸ºäºä¿æ¤æºå符串ï¼å½¢åç¨constéå®strSrcææçå
容ï¼æconst char *ä½ä¸ºchar *è¿åï¼ç±»åä¸ç¬¦ï¼ç¼è¯æ¥éã
å
·ä½ä¸¾ä¾ï¼
/* strcpy example */
#include <stdio.h>
#include <string.h>
int main ()
{
char str1[]="Sample string";
char str2[40];
char str3[40];
strcpy (str2,str1);
strcpy (str3,"copy successful");
printf ("str1: %s\nstr2: %s\nstr3: %s\n",str1,str2,str3);
return 0;
}
ç»æï¼
str1: Sample string
str2: Sample string
str3: copy successful
温馨提示:答案为网友推荐,仅供参考