2 回答

TA貢獻(xiàn)1827條經(jīng)驗(yàn) 獲得超8個(gè)贊
strcpy函數(shù)
原型聲明:extern char *strcpy(char* dest, const char *src);
頭文件:#include <string.h> 和 #include <stdio.h>
功能:把從src地址開(kāi)始且含有NULL結(jié)束符的字符串復(fù)制到以dest開(kāi)始的地址空間
說(shuō)明:src和dest所指內(nèi)存區(qū)域不可以重疊且dest必須有足夠的空間來(lái)容納src的字符串。
返回指向dest的指針。
典型實(shí)現(xiàn):
/**********************
*C語(yǔ)言標(biāo)準(zhǔn)庫(kù)函數(shù)strcpy的一種典型的工業(yè)級(jí)的最簡(jiǎn)實(shí)現(xiàn)
*返回值:目標(biāo)串的地址。
*對(duì)于出現(xiàn)異常的情況ANSI-C99標(biāo)準(zhǔn)并未定義,故由實(shí)現(xiàn)者決定返回值,通常為NULL。
*參數(shù):des為目標(biāo)字符串,source為原字符串
*/
char* strcpy(char* des,const char* source)
{
char* r=des;
while((*(des++)=*(source++))!='\0');
return r;
}
/*while((*des++=*source++));的解釋:賦值表達(dá)式返回左操作數(shù),所以在賦值NULL后,循環(huán)停止*/
示例:
?、眘trcpy的實(shí)現(xiàn)代碼
char * strcpy(char * strDest,const char * strSrc)
{
if ((NULL==strDest) || (NULL==strSrc)) //[1]
throw "Invalid argument(s)"; //[2]
char * strDestCopy = strDest; //[3]
while ((*strDest++=*strSrc++)!='\0'); //[4]
return strDestCopy;
}
strcmp函數(shù)
C/C++函數(shù),比較兩個(gè)字符串
設(shè)這兩個(gè)字符串為str1,str2,
若str1==str2,則返回零;
若str1>str2,則返回正數(shù);
若str1<str2,則返回負(fù)數(shù)。
函數(shù)原型:extern int strcmp(const char *s1,const char *s2);
示例:
#include <stdio.h>
#include <string.h>
int main()
{
char string[20];
char str[3][20];
int i;
for(i=0;i<3;i++)
gets(str[i]);
if(strcmp(str[0],str[1])>0)
strcpy(string,str[0]);
else
strcpy(string,str[1]);
if(strcmp(str[2],string)>0)
strcpy(string,str[2]);
printf("\nThe largest string is%s\n",string);
return0;
}
- 2 回答
- 0 關(guān)注
- 666 瀏覽
添加回答
舉報(bào)