1. char* strcat(char* dest,char* src)
#include <stdio.h>
#include <stdlib.h>
char* mystrcat(char* des,char* src)
{
char* ret = des;
while(*des++); //是指针指向末尾的下二位
des--; //指针指向'/0'
while(*des++=*src++);
return ret;
}
int main()
{
char* str1 = (char*)malloc(128);
*str1 = '/0';
char* str2 = (char*)malloc(678);
*str2 = '/0';
gets(str1);
gets(str2);
char* dest = (char*)malloc(256);
*dest = '/0';
mystrcat(mystrcat(dest,str1),str2);
printf("%s/n",dest);
free(str1);
free(str2);
free(dest);
dest = NULL;
str1 =NULL;
str2 = str1;
return 0;
}
2. char* strrev(char* str)
#include <stdio.h>
#include <stdlib.h>
#include <iostream.h>
void swap(char& a,char& b)
{
char temp;
temp = a;
a = b;
b = temp;
}
char* mystrrev(char* str)
{
char* head = str;
char* start = str; //指向str的头
char* end = str;
while(*end++);
end-=2; //指向str的尾部
while(start<end)
swap(*start++,*end--);
return head;
}
int main()
{
char* str = (char*)malloc(128);
*str = '/0';
gets(str);
char* result = mystrrev(str);
printf("%s/n",result);
free(str);
str =NULL;
return 0;
}
3.char* mystrstr(char* str,char*substr)
#include <iostream>
using namespace std;
char* mystrstr(char* str,char*substr)
{
char* sp;
char* bp;
if(str==NULL||substr==NULL)
return NULL;
while(*str)
{
sp = str; //src串的遍历
bp = substr; //substr的遍历
do
{
if(!*bp) //如果到了sub字符串的结束符位置
return str; //表明找到了substr
} while(*sp++==*bp++);
str+=1;
}
return NULL;
}
int main()
{
char* str = (char*)malloc(128);
*str = '/0';
char* substr = (char*)malloc(678);
*substr = '/0';
gets(str);
gets(substr);
char* result = mystrstr(str,substr);
printf("result: %s/n",result);
free(str);
free(substr);
str =NULL;
substr = str;
return 0;
}
4.mystrstr(char* str1,char*str2)