现在的位置: 首页 > 综合 > 正文

Exe8 自己写的字符串操作函数

2013年09月19日 ⁄ 综合 ⁄ 共 1968字 ⁄ 字号 评论关闭

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)

 

  

抱歉!评论已关闭.