教教大家一些strcpy,strcmp,strcat,strlen函数的写法

来源:互联网 发布:全民奇迹源码 编辑:程序博客网 时间:2024/05/01 07:13
VC源码:
strcmp函数的写法:
#include<stdio.h>
#include<string.h>
int strcmp1(char* a, char* b)
{
for(;*a==*b;a++,b++)
if(*a!='\0') return 0;
return *a - *b;
}
main()
{  int l;
char a[10]={"db"};
char b[10]={"cb"};
l=strcmp1(a,b);
    printf("%d\n",l);
}

strcat函数的写法:
#include<stdio.h>
#include<string.h>
char *strcat1(char *dst, char *src)
{
char *cp = dst;
while( *cp )
cp++; /* find end of dst */
while(*cp++=*src++) ; /* Copy src to end of dst */
return( dst ); /* return dst */
}
main()
{
char a[10]={"wangefng"};
char b[10]={"junzi"};
   strcat1(a,b);
   puts(a);
}
strcpy函数的写法:
#include<stdio.h>
#include<string.h>
char *strcpy1(char *to, char *from)
{
char* p = to;
while(*to++ = *from++);
return p;
}
main()
{
char a[10]={"wangefng"};
char b[10]={"junzi"};
   strcpy1(a,b);
   puts(a);
}
strcat函数的数组实现写法:
#include<stdio.h>
void strcat1(char s[],char t[])
{  
int j=0,i=0;
while(s[i]!='\0')//判断是否为字符串s的末尾
i++;
while((s[i]=t[j])!='\0')
i++,j++;
}
main()//主函数,用于测试strcat函数的功能
{  
char s[20]="i love ";//字符数组s应定义足够的长度,以便能装入连接后的字符串
char t[]="you";
strcat1(s,t);//调用字符串连接函数
printf("连接后的字符串长度为:%s\n",s);

}
strcat函数的指针实现写法:
#include<stdio.h>
char *strcat1(char *s,char *t)
{  
while(*s)//判断是否为字符串s的末尾
       s++;     
while(*s++=*t++)//复制t中的字符串到s的末尾
;
return s;
}
main()//主函数,用于测试strcat函数的功能
{  
char a[20]="i love ";//字符数组s应定义足够的长度,以便能装入连接后的字符串
char b[5]="you";
strcat1(a,b);//调用字符串连接函数
printf("连接后的字符串长度为:%s\n",a);
}
#include <stdio.h>
void connect(char str1[],char str2[])
{int i,j;
i=strlen(str1);
for(j=0;str2[j]!='\0';j++)
str1[i+j]=str2[j];
str1[i+j]='\0';
}
main()
{char str1[200],str2[100];
printf("please input the first string:\n");
gets(str1);
printf("please input the second string:\n");
gets(str2);
connect(str1,str2);
printf("after connect:\n");
puts(str1);
}

strlen函数的指针写法:#include<stdio.h>
#include<string.h>
char strlen1(char  *s)
{
int i=0;
while(*s++)
++i;
return i;
}
main()
{   char s[10]="iloveyou";
printf("字符串长度为:%d\n",strlen1(s));
}


还可以用for循环:
char strlen1(char *s)
{
int n;
for(n=0;*s!="\0";s++)
  n++;
return n;
}
}
strlen函数的写法
#include<stdio.h>
int strlen1(char *s)
{  
int n=0;
while(s[n]!='\0')
++n;
return n;
}
main()
{   char s[10]="iloveyou";
printf("%d\n",strlen1(s));





2、  写一函数int fun(char *p)判断一字符串是否为回文,是返回1,不是返回0,出错返回-1

int fun(char *p)
{
int i=0, len=0, flag=0;
while ((*p)!='\0')
{p++; len++;}
if (len==0) return flag=-1;
p=p-len;
for (i=0; i<=len/2; i++)
{
  if (p[i]!=p[len-1-i])
return flag=0;
}
return flag=1;
}
}

int strcmp(const char *str1,const char *str2)
{
   int len=0;
while(*str1&&*str2&&(*str1==*str2))
{
  
  str1++;
  str2++;


}

return *str1-*str2;



}
0 0
原创粉丝点击