您的位置:首页 > 其它

字符处理函数

2014-06-25 20:59 162 查看
/*============================================================================
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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: