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 关注
- 873 浏览
添加回答
举报
0/150
提交
取消