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的代码详解,估计就懂了!
1 #include <string.h> 2 #include <stdio.h> 3 #include <stdlib.h> 4 #include <assert.h> 5 char* mysubstr(char* srcstr, int offset, int length) 6 { 7 assert(length > 0); 8 assert(srcstr != NULL); 9 10 int total_length = strlen(srcstr);//首先获取srcstr的长度 11 //判断srcstr的长度减去需要截取的substr开始位置之后,剩下的长度 12 //是否大于指定的长度length,如果大于,就可以取长度为length的子串 13 //否则就把从开始位置剩下的字符串全部返回。 14 int real_length = ((total_length - offset) >= length ? length : (total_length - offset)) + 1; 15 char *tmp; 16 if (NULL == (tmp=(char*) malloc(real_length * sizeof(char)))) 17 { 18 printf("Memory overflow . \n"); 19 exit(0); 20 } 21 strncpy(tmp, srcstr+offset, real_length - 1); 22 tmp[real_length - 1] = '\0'; 23 return tmp; 24 } 25 int main() 26 { 27 char srcstr[] = "this is a test string!"; 28 char* tmp = mysubstr(srcstr, 8, 8); 29 printf("TEST: result = %s\n", tmp); 30 free(tmp); 31 return 0; 32 }
作 者:Angel_Kitty
出 处:https://www.cnblogs.com/ECJTUACM-873284962/
关于作者:阿里云ACE,目前主要研究方向是Web安全漏洞以及反序列化。如有问题或建议,请多多赐教!
版权声明:本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接。
特此声明:所有评论和私信都会在第一时间回复。也欢迎园子的大大们指正错误,共同进步。或者直接私信我
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是作者坚持原创和持续写作的最大动力!
欢迎大家关注我的微信公众号IT老实人(IThonest),如果您觉得文章对您有很大的帮助,您可以考虑赏博主一杯咖啡以资鼓励,您的肯定将是我最大的动力。thx.
我的公众号是IT老实人(IThonest),一个有故事的公众号,欢迎大家来这里讨论,共同进步,不断学习才能不断进步。扫下面的二维码或者收藏下面的二维码关注吧(长按下面的二维码图片、并选择识别图中的二维码),个人QQ和微信的二维码也已给出,扫描下面👇的二维码一起来讨论吧!!!
欢迎大家关注我的Github,一些文章的备份和平常做的一些项目会存放在这里。