/*============================================================================
Name : Exercise.cpp
Author : Haier
Version : 1.01
Copyright : Copyright (c) 2014
Description : Useful string functions in C, Ansi-style, Compile by Eclipse
============================================================================*/
#include <stdio.h>
#include <string.h>
void Remchars(char *str,char c)
{
char *pos;
while(pos=strchr(str,c))
{
memmove(pos,pos+1,strlen(pos));
}
}
void Remchks(char *str,char *substr)
{
char *pos;
int LenOfSubstr=strlen(substr);
while(pos=strstr(str,substr))
{
memmove(pos,pos+LenOfSubstr,strlen(pos)-LenOfSubstr+1);
}
}
//replace specified characters in a string
void ReplaceChar(char *str,char c1,char c2)
{
char *pos;
while(pos=strchr(str,c1))
{
*pos=c2;
}
}
//replace specified chunks in a string (size-independent, just remember about memory)
void ReplaceChk(char *str,char *c1,char *c2)
{
char *pos;
int LengthOfc1=strlen(c1),LengthOfc2=strlen(c2);
while(pos=strstr(str,c1))
{
memmove(pos+LengthOfc2,pos+LengthOfc1,strlen(pos)-LengthOfc1+1);
memcpy(pos,c2,LengthOfc2);
}
}
void Reverse(char *str)
{
int Length=strlen(str)-1;
int Mid =Length%2 ? Length/2 : (Length+1)/2;
int i;
char temp;
for(i=0; i<=Mid; i++)
{
temp=*(str+i);
*(str+i)=*(str+strlen(str)-1-i);
*(str+strlen(str)-1-i)=temp;
}
}
int main()
{
char *str,test[25]="Hello World !",ch[25]="lo";
char *c=ch,*c2="Lo";
str=test;
Reverse(str);
printf("%s",str);
return 0;
}