2 回答

TA貢獻1827條經驗 獲得超8個贊
strcpy函數
原型聲明:extern char *strcpy(char* dest, const char *src);
頭文件:#include <string.h> 和 #include <stdio.h>
功能:把從src地址開始且含有NULL結束符的字符串復制到以dest開始的地址空間
說明:src和dest所指內存區域不可以重疊且dest必須有足夠的空間來容納src的字符串。
返回指向dest的指針。
典型實現:
/**********************
*C語言標準庫函數strcpy的一種典型的工業級的最簡實現
*返回值:目標串的地址。
*對于出現異常的情況ANSI-C99標準并未定義,故由實現者決定返回值,通常為NULL。
*參數:des為目標字符串,source為原字符串
*/
char* strcpy(char* des,const char* source)
{
char* r=des;
while((*(des++)=*(source++))!='\0');
return r;
}
/*while((*des++=*source++));的解釋:賦值表達式返回左操作數,所以在賦值NULL后,循環停止*/
示例:
?、眘trcpy的實現代碼
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函數
C/C++函數,比較兩個字符串
設這兩個字符串為str1,str2,
若str1==str2,則返回零;
若str1>str2,則返回正數;
若str1<str2,則返回負數。
函數原型: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 關注
- 672 瀏覽
添加回答
舉報