C语言字符串的常见特殊操作(除了string.c实现的那些接口)
字符串操作中,必须掌握的一些之前已经在文章有写过了,比如说字符串查找,字符串粘帖,字符串拷贝等等,这些在标准C库的string.c中已经有实现,故包含#include <string.h>就可以使用了。
除了上述所说的接口,还有一些在工作中常用的接口,比如:从字符串中删除指定的字符,删除字符串的第一个字符,将字符串左右翻转等等,今天就挑几个这样的接口来说一下:
我们直接上代码:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define uchar unsigned char
#define uint unsigned int
//删除字符串中所有的数字
void del_str_Num(char* str)
{
static int i , j;
while(str[i]!='\0')
{
if(str[i]>'9'||str[i]<'0')
str[j++]=str[i];
i++;
}
str[j]='\0';
}
//删除字符串中的第一个字符
static char* ltrim(char *s, char c)
{
while(*s!=0&&*s==c)
s++;
return s;
}
//查找并删除字符串中指定的任意字符
static char *delstr_c(char s[100] , char c)
{
char *p , *q ;
for(p = s , q = s ; *p != '\0' ; p++)
if(*p != c)*q++ = *p ;
*q = *p ;
return s ;
}
/*将字符串s中出现的字符c删除*/
void del_str_c(char s[],int c)
{
int i,j;
for (i = 0, j = 0; s[i] != '\0'; i++)
{
if (s[i] != c)
{
s[j++] = s[i];
}
}
s[j] = '\0';
}
//查找字符串中的字符并将对应的字符删除
char *strdel_c(char *s,char c)
{
char *p=s,*q=s;
for(;*p;p++)
{
if(*p != c )
{
if(q == p)
q++ ;
else
*q++ = *p ;
}
}
*q = '\0';
return s;
}
//将字符串左右翻转
char* strfilp(char* str)
{
//h指向str的头部
char* h = str;
char* t = str;
char ch;
//t指向s的尾部
while(*t++) ;
t--; //与t++抵消
t--; //回跳过结束符'\0'
//当h和t未重合时,交换它们所指向的字符
while(h < t)
{
ch = *h;
*h++ = *t; //首尾移动
*t-- = ch;
}
return(str);
}
int main()
{
char str[20] = "23.3hhlo965" ;
char *str1 = "hello";
del_str_c(str , '.'); //删除该字符串中的.
printf("%s\n",str);
del_str_Num(str); //删除该字符串中的所有数字
printf("%s\n",str);
strfilp(str); //将字符串左右翻转
printf("%s\n",str);
return 0;
}</span>
运行结果:
上述实现的接口,我只测试了其中的三个,剩下的基本上都是雷同,只是用不同的方法去实现罢了。
C语言字符串的常见特殊操作(除了string.c实现的那些接口)的更多相关文章
- C语言字符串拷贝
C语言字符串拷贝利用指针操作,要清楚知道指针的指向 代码如下: #include <stdio.h> #include <assert.h> #include <stri ...
- Go 语言字符串常见操作
@ 目录 1. 字节数组 2. 头尾处理 3. 位置索引 4. 替换 5. 统计次数 6. 重复 7. 大小写 8. 去除字符 9. 字符串切片处理 10. 数值处理 1. 字节数组 字节与字符的区别 ...
- C语言字符串操作总结大全(超详细)
本篇文章是对C语言字符串操作进行了详细的总结分析,需要的朋友参考下 1)字符串操作 strcpy(p, p1) 复制字符串 strncpy(p, p1, n) 复制指定长度字符串 strcat( ...
- C语言字符串操作常用库函数
C语言字符串操作常用库函数 *********************************************************************************** 函数 ...
- c语言字符串操作大全
C语言字符串操作函数 函数名: strcpy 功 能: 拷贝一个字符串到另一个 用 法: char *stpcpy(char *destin, char *source); 程序例: #incl ...
- 转:C语言字符串操作函数 - strcpy、strcmp、strcat、反转、回文
转自:C语言字符串操作函数 - strcpy.strcmp.strcat.反转.回文 C++常用库函数atoi,itoa,strcpy,strcmp的实现 作者:jcsu C语言字符串操作函数 1. ...
- GO语言的进阶之路-Golang字符串处理以及文件操作
GO语言的进阶之路-Golang字符串处理以及文件操作 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 我们都知道Golang是一门强类型的语言,相比Python在处理一些并发问题也 ...
- C语言字符串的操作
C语言字符串操作函数 1. 字符串反转 - strRev2. 字符串复制 - strcpy3. 字符串转化为整数 - atoi4. 字符串求长 - strlen5. 字符串连接 - strcat6. ...
- C语言字符串操作函数 - strcpy、strcmp、strcat、反转、回文
原文:http://www.cnblogs.com/JCSU/articles/1305401.html C语言字符串操作函数 1. 字符串反转 - strRev2. 字符串复制 - strcpy3. ...
随机推荐
- MyEclipse如何全局搜索
1全局搜索的启动方式 CTRL+H 2全局搜索自己选择搜索方式 自己选择要搜索的东西,简单吧,里面还有很多好玩的东西需要你去发现,加油! [正在看本人博客的这位童鞋,我看你气度不凡,谈吐间隐隐有王者之 ...
- javap反编译命令详解&Eclipse中配置javap命令
javap命令所有参数如下图所示: javap 命令用于解析类文件.其输出取决于所用的选项.若没有使用选项,javap 将输出传递给它的类的 public 域及方法.javap 将其输出到标准输出设备 ...
- tomcat启动批处理——startup.bat
从文件命名上看就知道这是一个启动批处理,这个批处理的主要功能就是为了找到另一个批处理catalina.bat,并且执行catalina.bat. 一开始就用if "%OS%" == ...
- C语言与java语言中数据类型的差别总结
在学习java的时候,看到char ch = '男' ; 我就觉得很奇怪,char类型不是占用一个字节吗?为什么定义成一个汉字被说成是一个字符了? 原来,在C语言中,char在32位操作系统下占用1 ...
- 剑指offer面试题5 从头到尾打印链表(c)
- 剑指Offer——京东校招笔试题+知识点总结
剑指Offer--京东校招笔试题+知识点总结 笔试感言 经过一系列的笔试,发觉自己的基础知识还是比较薄弱的,尤其是数据结构和网络,还有操作系统.工作量还是很大的.做到精确制导的好方法就是在网上刷题,包 ...
- Servlet之Response对象
下面的方法可用于在 Servlet 程序中设置 HTTP 响应报头.这些方法通过HttpServletResponse 对象可用. 1 String encodeRedirectURL(Stri ...
- 剑指Offer——网易笔试之解救小易——曼哈顿距离的典型应用
剑指Offer--网易笔试之解救小易--曼哈顿距离的典型应用 前言 首先介绍一下曼哈顿,曼哈顿是一个极为繁华的街区,高楼林立,街道纵横,从A地点到达B地点没有直线路径,必须绕道,而且至少要经C地点,走 ...
- 03SpringMVC,Spring,Hibernate整合(Date时间转换)
项目结构 2 web.xml的配置内容如下: <?xmlversion="1.0"encoding="UTF-8"?> <web-app ...
- JAVA之旅(三十)——打印流PrintWriter,合并流,切割文件并且合并,对象的序列化Serializable,管道流,RandomAccessFile,IO其他类,字符编码
JAVA之旅(三十)--打印流PrintWriter,合并流,切割文件并且合并,对象的序列化Serializable,管道流,RandomAccessFile,IO其他类,字符编码 三十篇了,又是一个 ...