char get_sub_str(char str, int start, int len)
{
char res = (char)malloc(len + 1);
res[len] = 0;
memcpy(res, str + start - 1, len);
return res;
}
char get_sub_str(char str, int start, int len)
{
char res = (char)malloc(len + 1);
res[len] = 0;
memcpy(res, str + start - 1, len);
return res;
}
现在有如下一串字符串:
"asdfkjasldjkf"shiner"df
需求:
需要提取出shiner子字符串。
命令如下:
[root@localhost
/]$
echo
"asdfkjasldjkf\"shiner\"df"
|
sed
's/\(\)"\(\)"\(\)/\2/g'
shiner
命令解释
s:
表示替换命令
\(\)"
:
表示第一个引号前的内容
"\(\)":表示两引号之间的内容
)"\(\):表示引号后的内容
\2:
表示第二对括号里面的内容
括号里的表达式匹配的内容,可以用\1,\2等进行引用,第n个括号对内的内容,就用\n引用。
这个命令的意思是:
用\2代表的第二个括号的内容(shiner)去替换整个字符串,这样就得到了我们所需要的子字符串了。
string a="321,654,98787,123123";
string[] b = aSplit(new Char[] { ',' });
用Split函数分割,存储在数组里。
如果你用的是string类型的变量 可以把string类型变量当做数组来 *** 作 便可方便地字符串进行各种
*** 作 例子如下:
int main()
{
string a;
cin>>a;
int length=alength(); //取字符串的长度
string b;
for(int k=2;k<5;++k) //截取字符串a中2~4位置段的字串,并存入字符串b中
{
b+=a[k];
}
cout<<b;
return 0;
}
package chuan;
public class MaxSubstring {
//获取两个字符串中最大相同子串。
/
思路:1、将短的那个子串按照长度递减的方式获取到。
2、用长串去判断是否包含每次获取到的子串,若包含则就找到最大相同子串
@param s1
@param s2
@return max substring
/
public static String getMaxsubstring(String s1,String s2)
{
String max="",min="";
max=(s1length()>s2length())s1:s2;
min=(max==s1)s2:s1;
for(int i=0;i<minlength();i++)
{
for(int j=0,k=minlength()-i;k!=minlength()+1;j++,k++)
{
String temp=minsubstring(j,k);
//Systemoutprintln("temp--:"+temp);
if(maxcontains(temp))
return temp;
}
}
return "";
}
/
@param args
/
public static void main(String[] args) {
String xx="abcdefghij",yy="34cdefgff";
String dd=MaxSubstringgetMaxsubstring(xx,yy);
Systemoutprintln(dd);
}
}
可以使用JavaScript原生自带的substring。
定义和用法
substring() 方法用于提取字符串中介于两个指定下标之间的字符。
语法
stringObjectsubstring(start,stop)
参数
start 必需。一个非负的整数,规定要提取的子串的第一个字符在 stringObject 中的位置。
stop
可选。一个非负的整数,比要提取的子串的最后一个字符在 stringObject 中的位置多 1。
如果省略该参数,那么返回的子串会一直到字符串的结尾。
返回值
一个新的字符串,该字符串值包含 stringObject 的一个子字符串,其内容是从 start 处到 stop-1 处的所有字符,其长度为 stop 减start。
简单的小例子。仅供参考:
<script type="text/javascript">var str="Hello world!"
documentwrite(strsubstring(3))
</script>
//vc++ 60下运行通过
#include <stdioh>
#include <stdlibh>
char subs(char s,int n,int m)
{
char p;
int i=0;
p=s;
while(p++ != '\0') //NULL是void 型
{
i++;
}
if(n<0||m<0||m<n||m>i)
{
printf("Substring invidal !\n");
exit (0);
}
p=s+n;
(p+m+1)='\0';//必须'\0',printf函数读到'\0'停止;
return(p);
}
int main(void)
{
char s1[]="The c programing language!";// char 常量
system("cls");
printf("%s\n",subs(s1,5,16));
}
以上就是关于编写一取某字符串子串的函数char*substr全部的内容,包括:编写一取某字符串子串的函数char*substr、5. 定义一个函数,用来获取一个字符串中的子串 char * get_sub_str、如何用正则表达式提取如下字符串中的子串等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)