C/C++中substr函数的应用(简单讲解)
substr(字符串,截取开始位置,截取长度) //返回截取的字
substr('Hello World',0,1) //返回结果为 'H' *从字符串第一个字符开始截取长度为1的字符串
substr('Hello World',1,1) //返回结果为 'H' *0和1都是表示截取的开始位置为第一个字符
substr('Hello World',2,4) //返回结果为 'ello'
substr('Hello World',-3,3)//返回结果为 'rld' *负数(-i)表示截取的开始位置为字符串右端向左数第i个字符
测试:
select substr('Hello World',-3,3) value from dual;
附:java中substring(index1,index2)的简单用法
作用:从字符串索引(下标)为index1的字符开始截取长度为index2-index1 的字符串。
String str="Hello World";
System.out.println(str.substring(0,5));
打印结果为:Hello
下面给段C的代码详解,估计就懂了!
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
char* mysubstr(char* srcstr, int offset, int length)
{
assert(length > );
assert(srcstr != NULL); int total_length = strlen(srcstr);//首先获取srcstr的长度
//判断srcstr的长度减去需要截取的substr开始位置之后,剩下的长度
//是否大于指定的长度length,如果大于,就可以取长度为length的子串
//否则就把从开始位置剩下的字符串全部返回。
int real_length = ((total_length - offset) >= length ? length : (total_length - offset)) + ;
char *tmp;
if (NULL == (tmp=(char*) malloc(real_length * sizeof(char))))
{
printf("Memory overflow . \n");
exit();
}
strncpy(tmp, srcstr+offset, real_length - );
tmp[real_length - ] = '\0';
return tmp;
}
int main()
{
char srcstr[] = "this is a test string!";
char* tmp = mysubstr(srcstr, , );
printf("TEST: result = %s\n", tmp);
free(tmp);
return ;
}
C/C++中substr函数的应用(简单讲解)的更多相关文章
- C++中substr函数的用法
#include<iostream> #include<string> using namespace std; int main(){ string str("12 ...
- 花3分钟了解下C/C++中的函数可变参简单实现
1.可变参函数的原理 C/C++函数的参数是存放在栈区的,并且参数的入栈是从参数的右边开始,即最后一个参数先入栈,而第一个参数最后才入栈,所以,根据栈的后进先出性质,函数总能找到第一个参数.所以,可变 ...
- oracle中substr函数的用法
1.substr(string string, int a, int b) 参数1:string 要处理的字符串 参数2:a 截取字符串的开始位置(起始位置是0) 参数3:b 截取的字符串的长度(而不 ...
- 【模板】string中substr函数的运用
substr有两种用法: 假设:string s = "0123456789" ; //下标从0开始 ① string a = s.substr(5) ...
- Java中的yield关键字的简单讲解
Thread.yield()方法作用是:暂停当前正在执行的线程对象,并执行其他线程. yield()应该做的是让当前运行线程回到可运行状态,以允许具有相同优先级的其他线程获得运行机会.因此,使用yie ...
- Oracle trunc()函数,decode()函数,substr函数,GREATEST函数,java中substring函数的用法
--Oracle trunc()函数的用法/**************日期********************/1.select trunc(sysdate) from dual --2013- ...
- C++中substr的用法
C++中substr函数的用法 #include<string> #include<iostream> using namespace std; void main() { s ...
- Oracle的substr函数简单用法与substring区别
substr(字符串,截取开始位置,截取长度) //返回截取的字 substr('Hello World',0,1) //返回结果为 'H' *从字符串第一个字符开始截取长度为1的字符串 subst ...
- SQL中CHARINDEX()/INSTR()函数和SUBSTRING()/SUBSTR()函数
一.SQLServer中的CHARINDEX() 和ORACLE中的INSTR()函数 1.INSTR(C1,C2[,I[,J]]) [功能]在一个字符串中搜索指定的字符,返回发现指定的字符的位置; ...
随机推荐
- Linux简介,虚拟机安装,网络设置,桌面和vim安装
Linux简介: linux代表系统内核.Linux系统指基于Linux内核的操作系统,由内核和程序结合组成.比较流行的发行版本由RedHat Linux.Fedora.Centos.Debian.U ...
- 数据库入门(以MySQL为例)
一.数据库中的概念 1.数据库是用户存放数据.访问数据.操作数据的存储仓库,用户的各种数据被有组织地存放在数据库中.可以随时被有权限的用户查询.统计.添加.删除.和修改.可以说,数据库是长期存储在计算 ...
- mysql5.7-Group Replication
什么是Group Replication 基于组的复制(Group-based Replication)是一种被使用在容错系统中的技术.Replication-group(复制组)是由能够相互通信的多 ...
- alias 命令详解
alias 命令 作用: 设置命令别名,可以将较长的命令进行简化,使用alias 时,用户必须使用单引号将原来的命令引起来,防止特殊字符导致错误. 如要永久生效则将alias 命令存放到bash 的 ...
- Linux第七节随笔-下磁盘管理
baidubaike 磁盘管理物理磁盘---> RAID--->文件系统--->用户使用LVM概念简述Raid详细解说 0 ...
- String 转化成java.sql.Date和java.sql.Time
String类型转换成java.sql.Date类型不能直接进行转换,首先要将String转换成java.util.Date,在转化成java.sql.Date 请点击---> java架构 ...
- Java 字符编码与解码
1.字符编码的发展历程 ①.ASCII 码 因为计算机只认识数字,所以我们在计算机里面的一切数据都是以数字来表示,因为英文字符有限,所以规定使用的字节的最高位是 0,每一个字节都是以 0-127 之间 ...
- F和弦大横按
用食指手掌关节顶住. 靠近品柱往上压 右手压住琴尾,这样就很轻松试下C跟F不停转换就快找到感觉 等熟练了,食指自然不会按太上 练得差不多了,手指向琴头倾压,有两个好处 1.手指后面的肉不会碰到弦 2. ...
- admin
执行顺序 : Admin 执行admin.py,导入models 第一次进来的时候,先创建admin.site对象(如果下次再有引入,不会重新创建) 拿到对象后执行该对象下的register()方法 ...
- python的range()函数
range函数的三种用法:>>> range(1,5) # 代表从1到5(不包含5) [1, 2, 3, 4] >>> range(1,5,2) # 代表从1到5, ...