函数名:strcat
功能:把src所指字符串添加到dest结尾处(覆盖dest结尾处的'\0')并添加'\0'。
说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。
返回:指向dest的指针。
int main(){
char *MyStrcat(char * dest, const char * src);
char a[30]="Golden Global";
char *b=" View";
MyStrcat(a,b);
printf("%s",a);
}
char *MyStrcat(char *dest,const char *src)
{
char *tmp = dest;
while (*dest)
dest++;
while (*dest++ = *src++)
;
return tmp;
}
函数名: strstr
函数原型:extern char *strstr(char *str1, char *str2);
功能:找出str2字符串在str1字符串中第一次出现的位置(不包括str2的串结束符)。
返回值:返回该位置的指针,如找不到,返回空指针。
#include<stdio.h>
char* myStrstr(const char* string,const char* strCharSet)
{
int i;
if(*strCharSet)
{
while(*string)
{
for(i=0; *(string+i) == *(strCharSet+i) ; i++)
{
if(!*(strCharSet+i+1))
return (char*)string;
}
string++;
}
return (char*)NULL;
}
else
return (char*)string;
}
void main()
{
char *a = "abcdeabc";
char *b = "bc";
char *c;
c = myStrstr(a,b);
printf("%s \n",c);
}
函数名: strcpy
原型声明:extern char *strcpy(char *dest,const char *src);
功能:把从src地址开始且含有NULL结束符的字符串赋值到以dest开始的地址空间
说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。
返回:指向dest的指针。
#include<stdio.h>
char* myStrcpy(char *dest,const char* src)
{
char *temp = dest;
if(dest == NULL || src == NULL)
return NULL;
while((*temp++ = *src++)!='\0')
;
return dest;
}
void main()
{
char a[10] = "abcdefg";
char b[5] = "hhh";
char *c;
c = myStrcpy(a,b);
printf("%s ",c);
}
函数名: strcmp
原型:extern int strcmp(const char *s1,const char * s2);
功能:比较字符串s1和s2
一般形式:strcmp(字符串1,字符串2)
说明:
当s1<s2时,返回值<0
当s1=s2时,返回值=0
当s1>s2时,返回值>0
即:两个字符串自左向右逐个字符相比(按ASCII值大小相比较),直到出现不同的字符或遇'\0'为止。如:
"A"<"B" "a">"A" "computer">"compare"
特别注意:strcmp(const char *s1,const char * s2)这里面只能比较字符串,不能比较数字等其他形式的参数。
#include<stdio.h>
#include <assert.h>
int myStrcmp(const char *s1, const char *s2)
{
assert(s1 != NULL && s2 != NULL);
while((*s1 != '\0') && (*s2 != '\0') && (*s1 == *s2))
{
s1 ++;
s2 ++;
}
return *s1 - *s2;
}
void main()
{
char a[10] = "abcdefg";
char b[5] = "abcda";
int cmp;
cmp = myStrcmp(a,b);
printf("%d ",cmp);
}
函数名:strlen
原型:extern unsigned int strlen(char *s);
格式:strlen (字符数组名)
功能:计算字符串s的(unsigned int型)长度,不包括'\0'在内
说明:返回s的长度,不包括结束符NULL。
#include<stdio.h>
#include <assert.h>
int myStrlen(const char *s)
{
int len = 0;
assert(s != NULL);
while(*s++)
len++;
return len;
}
void main()
{
char *a = "abcdefg";
int len;
len = myStrlen(a);
printf("%d ",len);
}