C語言 strcat ,strcpy ,strlen 函數具體怎么寫?
2 回答

紅糖糍粑
TA貢獻1815條經驗 獲得超6個贊
12345678 | char * strcat ( char *dst, const char *src) { char *cp = dst; while (*cp) cp++; while (*cp++ = *src++); return (dst); } |
12345678 | char * strcpy ( char *des, const char *source) { char *r=des; assert ((des != NULL) && (source != NULL)); while ((*des++ = *source++)!= '\0' ); return r; } |
12345678 | int strlen ( const char *str) { assert (str!=NULL); int len=0; while ((*str++)!= '\0' ) len++; return len; } |
C語言沒有string類型,所有字符串操作都是通過字符指針或字符數組實現的。不用指針編寫字符串操作函數是不可能的。

桃花長相依
TA貢獻1860條經驗 獲得超8個贊
void strcat(char s1[],char s2[])
{int i,j;
for(i=0;s1[i]!='\0';i++);
for(j=0;s2[j]!='\0';j++)
s1[i++]=s2[j];
s1[i]='\0';
}
void strcpy(char a[],char b[])
{
int i=0,j=0;
while((a[i++]=b[j++])!='\0');}
int strcmp(char s1[],char s2[])
{int i;
for(i=0;s1[i]!='\0'&&s2[i]!='\0';i++)
{
if(s1[i]>s2[i])
return 1;
else if(s1[i]<s2[i])
return -1;}
if(s1[i]=='\0'&&s2[i]=='\0')
return 0;
else if(s1[i]=='\0')
return -1;
else
return 1;
}
int strlen(char s[])
{
int len=0 ,i;
for(i=0;s[i]!='\0';i++)
len++;
return len;}
- 2 回答
- 0 關注
- 916 瀏覽
添加回答
舉報
0/150
提交
取消