/*strcpy*/
/*函数原型*/ //char * strcpy(char * dst,const char * src )//strcpy只用于字符串复制,并且它不仅复制字符串内容之外,还会复制字符串的结束符
/*#include<stdio.h>
char * mystrcpy(char * dst,const char * src) //const 修饰:源字符串参数用const修饰,防止修改源字符串;
{
if((dst==NULL)||(src==NULL)) //空指针检查:源指针和目的指针都有可能会出现空指针的情况,所以应该对其进行检查;
{
return NULL;
}
char * ret = dst; //
while ((*dst++=*src++)!='\0'); //
return ret;//
}*/
/*#include<stdio.h>
#include<assert.h>
#include<iostream>
#define N 100
char * my_strcpy(char * dest, const char * src)
{
char *p = dest;
assert(dest != NULL || src != NULL);
while ((*dest++ = *src++) != '\0');
return p;
}
int main()
{
char str1[N]={"hello"};
char * str2 = "My future is wonderful.";
printf("%s\n", my_strcpy(str1, str2));
printf("%s\n", str1);
printf("%s\n", str2);
system("pause");
return 0;
}
在Vc++6.0中的输出结果是:
My future is wonderful.
My future is wonderful.
My future is wonderful.
请按任意键继续. . .*/
/*strcat*/
/*strcat连接两个字符串*/
/*char * mystrcat(char * dest, char * src)*/
/*函数原型*/
#include<stdio.h>
#include<string.h>
#include<assert.h>
/*char * strcat_m(char * dest,const char * str)
{
assert((dest!=NULL)&&(str!=NULL));
char * cp=dest;
while(*cp!='\0')
{
cp++;
}
while((*cp++=*str++)!='\0');
return dest;
} */
/*char * strncat_m(char * dest,const char * str,int n)
{
assert((dest!=NULL)&&(str!=NULL));
char * cp=dest;
while(*cp!='\0')
{
++cp;
}
while(n&&(*cp++=*str++)!='\0')
{
--n;
}
return dest;
}
int main()
{
//char a[30]="lanzhihui is ";
// char * b="a good boy!";
// strcat_m(a,b);
// printf("%s",a);
char c[30]="Hello ";
char * d="world!";
//strncat_m(c,d,sizeof(d)-1);
//printf("%s\n",c); //Hello wor
strncat_m(c,d,2);
printf("%s\n",c); //Hello wo
return 0;
} */
/*strcmp 比较两个字符串是否相同 */
/*设这两个字符串为str1,str2,
若str1==str2,则返回零;
若str1 > str2,则返回正数;
若str1< str2,则返回负数。*/
/*int mystrcmp(const char * a,const char * b)
{
assert(a!=NULL&&b!=NULL);
while(*a==*b&&*a!='\0')
{
a++;
b++;
}
if((*a-*b)==0)
{
return 0;
}
else if(*a-*b>0)
{
return 1;
}
else
{
return -1;
}
}
void main()
{
char a[10]={"asdgdgdg"};
char b[10]={"asdaffs"};
int c= 0;
c=mystrcmp(a,b);
printf("%d\n",c);
}*/
//strstr(str1,str2) strstr(str1,str2) 函数用于判断字符串str2是否是str1的子串。如果是,则该函数返回str2在str1中首次出现的地址;否则,返回NULL。
/*strstr函数原型*/
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
/*char * strstr(char * srcstr,char * substr)
{
int i =0;
int j = 0;
int srclen = strlen(srcstr);
int sublen = strlen(substr);
for(i=0;i<srclen-sublen+1;i++)
{
if(srcstr[i]==substr[0])
{
for(j=1;j<sublen;j++)
{
if(srcstr[i+j]!=substr[j])
{
break;
}
}
if(j==sublen)
{
return &srcstr[i];
}
}
}
return NULL;
}
void main()
{
char srcstr[20]={0};
char substr[20]={0};
char * a=0;
gets(srcstr);
gets(substr);
//a=strstr(srcstr,substr);
printf("%s\n",strstr(srcstr,substr));
}*/
/*char * strstr(char * srcstr,char * substr)
{
char * p = NULL;
char * q = substr;
char * k = NULL;
int srclen = strlen(srcstr);
int sublen = strlen(substr);
for(p=srcstr;p<srcstr+srclen-sublen+1;p++)
{
if(*p==*substr)
{
k=p+1;
for(q=substr+1;q<substr+sublen;q++;k++)
{
if(*k!=*q)
}
}
}
}*/
/*char * mystrstr(char * srcstr,char * substr)
{
int n = strlen(substr);
int n2=strlen(srcstr);
char temp[20]={0};
const char * p=srcstr;
for(p=srcstr;p<srcstr+n2-n+1;p++)
{
strncpy(temp,p,n);
if(strcmp(temp,substr)==0)
{
return (char * )p;
}
}
return NULL;
}
void main()
{
char srcstr[20]={0};
char substr[20]={0};
//char * a=0;
gets(srcstr);
gets(substr);
//a=strstr(srcstr,substr);
printf("%s\n",mystrstr(srcstr,substr));
}*/
string.h常用函数
最新推荐文章于 2023-08-30 11:22:58 发布