字符串的一些操作函数
2016-07-24 20:01
399 查看
字符串反转
charstr_rev(char *str, size_t len)
{
char*start = str;指向字符数组头
char*end = str+len-1;指向字符数组尾
charch;
if(str!= NULL)
{
while(start< end)
{交换尾部和头部的字符,并同时移动头部和尾部指针
ch= *start;
*start++= *end;
*end--= ch;
}
}
returnstr;
}
去掉指定字符
void removeStr(char *str,char *re)
{
int a[26]={0},i=0,j=0;
while(re[i]!='\0')
{
a[re[i]-'a']=1;
i++;
}
i=0;
while(str[i]!='\0')
{
if(a[str[i]-'a']==0)
{
str[j++]=str[i];
}
i++;
}
str[j]='\0';
}
反转单词的操作函数
void reverseWords(char *str)
{
int len,i,j,k;
char *copyStr=NULL,*temp=NULL;
len=strlen(str);
copyStr=(char*)malloc(len+1);
assert(copyStr!=NULL);
temp=copyStr;
k=0;
for(i=len-1;i>=0;i--)
{
k++;
if(str[i]==' ')
{
j=i;
while(k>1)
{
*copyStr++=str[++j];
k--;
}
k=0;
*copyStr++=' ';
}
if(i==0)
{
j=i;
while(k>0)
{
*copyStr++=str[j++];
k--;
}
*copyStr='\0';
}
}
strcpy(str,temp);
free(temp);
copyStr=NULL;
temp=NULL;
}
charstr_rev(char *str, size_t len)
{
char*start = str;指向字符数组头
char*end = str+len-1;指向字符数组尾
charch;
if(str!= NULL)
{
while(start< end)
{交换尾部和头部的字符,并同时移动头部和尾部指针
ch= *start;
*start++= *end;
*end--= ch;
}
}
returnstr;
}
去掉指定字符
void removeStr(char *str,char *re)
{
int a[26]={0},i=0,j=0;
while(re[i]!='\0')
{
a[re[i]-'a']=1;
i++;
}
i=0;
while(str[i]!='\0')
{
if(a[str[i]-'a']==0)
{
str[j++]=str[i];
}
i++;
}
str[j]='\0';
}
反转单词的操作函数
void reverseWords(char *str)
{
int len,i,j,k;
char *copyStr=NULL,*temp=NULL;
len=strlen(str);
copyStr=(char*)malloc(len+1);
assert(copyStr!=NULL);
temp=copyStr;
k=0;
for(i=len-1;i>=0;i--)
{
k++;
if(str[i]==' ')
{
j=i;
while(k>1)
{
*copyStr++=str[++j];
k--;
}
k=0;
*copyStr++=' ';
}
if(i==0)
{
j=i;
while(k>0)
{
*copyStr++=str[j++];
k--;
}
*copyStr='\0';
}
}
strcpy(str,temp);
free(temp);
copyStr=NULL;
temp=NULL;
}
相关文章推荐
- 字典排序
- bootstrap弹出框个人demo
- What is Spring
- Myeclipse导出uml类图和导出javadoc时"错误: 编码GBK的不可映射字符"解决
- UE4拾取物体
- mfc应用程序通过设置选项来出现console控制台输出窗口
- 字符串的循环左移,不用库函数,三步循环
- Json数据的解析-Gson
- ThinkPHP的四种路由形式
- c++ bitset类用法
- VMware中虚拟机复制克隆已有系统图文教程 1分钟学会
- Android之Gallery的使用
- 排序
- 坦克大战_坦克移动
- 操作系统对应用的包围圈在逐渐缩小,VM->Container->Unikernel
- Linux下的Oracle 11gr2安装完成的的自启动操作。
- Hdu 5452 Minimum Cut (图论问题) 2015 ACM-ICPC沈阳网赛
- 自定义HorizontalScrollView(横向滑动的ScrollView)
- Strings
- HDU1506->单调栈