新聞中心
c語言自己編寫一個split字符串分割函數(shù)
這個是用c++寫的不過和c的原理也差不多我運行過了,有什么問題再問吧,c不知道能否運行,不過現(xiàn)在c/c++程序設計試驗系統(tǒng)通常都有嵌套c++,你打開c界面時單擊vc6.0創(chuàng)建一個項目運行就可以了。
成都創(chuàng)新互聯(lián)公司是一家專注于成都做網(wǎng)站、網(wǎng)站設計與策劃設計,垣曲網(wǎng)站建設哪家好?成都創(chuàng)新互聯(lián)公司做網(wǎng)站,專注于網(wǎng)站建設十年,網(wǎng)設計領(lǐng)域的專業(yè)建站公司;建站業(yè)務涵蓋:垣曲等地區(qū)。垣曲做網(wǎng)站價格咨詢:18980820575
#include iostream
using namespace std;
char** split(char p[],char c,int k)
{
int i,m,j;
char **q;
q=(char**)new char*[k];
for(i=0;ik;i++)
q[i]=(char*)new char*[20];
i=0;
j=0;
m=0;
while(p[i])
{
if(p[i]!=',')
{
q[j][m++]=p[i++];
}
else
{
q[j][m]='\0';
j++;
m=0;
i++;
}
}
q[k-1][m]='\0';
for(i=0;i4;i++)
{
coutq[i];
coutendl;
}
return q;
}
void main()
{ int k;
char p[]="ab,cde,efgh,ghi32";
char c=',';
int i=0,j=0,m=0;
while(p[i])
{
if(p[i]==',')
j++;
i++;
}
j=j+1;//接受到底有多少個單詞在分割后通過逗號去判斷
k=j;
char**q=split(p,c,k);
printf("\n");
for(i=0;i4;i++)
{
coutq[i];
coutendl;
}
}
C語言中字符切割函數(shù)split的實現(xiàn)
#include?stdio.h
#include?string.h
//?將str字符以spl分割,存于dst中,并返回子字符串數(shù)量
int?split(char?dst[][80],?char*?str,?const?char*?spl)
{
int?n?=?0;
char?*result?=?NULL;
result?=?strtok(str,?spl);
while(?result?!=?NULL?)
{
strcpy(dst[n++],?result);
result?=?strtok(NULL,?spl);
}
return?n;
}
int?main()
{
char?str[]?=?"what?is?you?name?";
char?dst[10][80];
int?cnt?=?split(dst,?str,?"?");
for?(int?i?=?0;?i??cnt;?i++)
puts(dst[i]);
return?0;
}
c中split的用法
c中split的用法你知道嗎?下面我就跟你們詳細介紹下c中split的用法,希望對你們有用。
c中split的用法如下:
1、用字符串分隔:
using System.Text.RegularExpressions;
string str="aaajsbbbjsccc";
string[] sArray=Regex.Split(str,"js",RegexOptions.IgnoreCase);
foreach (string i in sArray) Response.Write(i.ToString() + "br");
輸出結(jié)果:
aaa
bbb
ccc
2、用多個字符來分隔:
string str="aaajbbbscccjdddseee";
string[] sArray=str.Split(new char[2] {'j','s'});
foreach(string i in sArray) Response.Write(i.ToString() + "br");
輸出結(jié)果:
aaa
bbb
ccc
ddd
eee
3、用單個字符來分隔:
string str="aaajbbbjccc";
string[] sArray=str.Split('j');
foreach(string i in sArray) Response.Write(i.ToString() + "br");
輸出結(jié)果:
aaa
bbb
ccc
////////////////////////////////////////////////
string[] arr = str.Split("o");
這是一個具有語法錯誤的語句,Split 的 separator 參數(shù)應該是 char[] 或 string[],不應是字符串。正確的示例:
string str = "technology";
char[] separator = { 'o' };
string[] arr = str.Split(separator);
////////////////////////////////////////////////////
String.Split 方法有6個重載函數(shù):
程序代碼
1) public string[] Split(params char[] separator)
2) public string[] Split(char[] separator, int count)
3) public string[] Split(char[] separator, StringSplitOptions options)
4) public string[] Split(string[] separator, StringSplitOptions options)
5) public string[] Split(char[] separator, int count, StringSplitOptions options)
6) public string[] Split(string[] separator, int count, StringSplitOptions options)
下邊我們通過一些實例來說明下怎么使用(以下string words = "1,2.3,,4";):
1. public string[] Split(params char[] separator)
程序代碼
string[] split = words.Split(new Char[] { ',' });//返回:{"1","2.3","","4"}
string[] split = words.Split(new Char[] { ',', '.' });//返回:{"1","2","3","","4"}
2. public string[] Split(char[] separator, int count)
程序代碼
string[] split = words.Split(new Char[] { ',', '.' }, 2);//返回:{"1","2.3,,4"}
string[] split = words.Split(new Char[] { ',', '.' }, 6);//返回:{"1","2","3","","4"}
3. public string[] Split(char[] separator, StringSplitOptions options)
程序代碼
string[] split = words.Split(new Char[] { ',', '.' }, StringSplitOptions.RemoveEmptyEntries);//返回:{"1","2","3","4"} 不保留空元素
string[] split = words.Split(new Char[] { ',', '.' }, StringSplitOptions.None);//返回:{"1","2","3","","4"} 保留空元素
4. public string[] Split(string[] separator, StringSplitOptions options)
程序代碼
string[] split = words.Split(new string[] { ",", "." }, StringSplitOptions.RemoveEmptyEntries);//返回:{"1","2","3","4"} 不保留空元素
string[] split = words.Split(new string[] { ",", "." }, StringSplitOptions.None);//返回:{"1","2","3","","4"} 保留空元素
5. public string[] Split(char[] separator, int count, StringSplitOptions options)
程序代碼
string[] split = words.Split(new Char[] { ',', '.' }, 2, StringSplitOptions.RemoveEmptyEntries);//返回:{"1","2.3,,4"} 不保留空元素
string[] split = words.Split(new Char[] { ',', '.' }, 6, StringSplitOptions.None);//返回:{"1","2","3","","4"} 保留空元素
6. public string[] Split(string[] separator, int count, StringSplitOptions options)
程序代碼
string[] split = words.Split(new string[] { ",", "." }, 2, StringSplitOptions.RemoveEmptyEntries);//返回:{"1","2.3,,4"} 不保留空元素
string[] split = words.Split(new string[] { ",", "." }, 6, StringSplitOptions.None);//返回:{"1","2","3","","4"} 保留空元素
需要注意的是沒有重載函數(shù)public string[] Split(string[] separator),所以我們不能像VB.NET那樣使用words.Split(","),而只能使用words.Split(',')
C#中split的方法和用法
第一種方法:
string s=abcdeabcdeabcde;
string[] sArray=s.Split('c') ;
foreach(string i in sArray)
Console.WriteLine(i.ToString());
輸出下面的結(jié)果:
ab
deab
deab
de第二種方法:
我們看到了結(jié)果是以一個指定的字符進行的分割。使用另一種構(gòu)造方法對多個字符進行分割:
string s="abcdeabcdeabcde";
string[] sArray1=s.Split(new char[3]{'c','d','e'}) ;
foreach(string i in sArray1)
Console.WriteLine(i.ToString());
可以輸出下面的結(jié)果:
ab
ab
ab第三種方法:
除了以上的這兩種方法以外,第三種方法是使用正則表達式。新建一個控制臺項目。然后先添加 using System.Text.RegularExpressions;
System.Text.RegularExpressions
string content=agcsmallmacsmallgggsmallytx;
string[]resultString=Regex.Split(content,small,RegexOptions.IgnoreCase)
foreach(string i in resultString)
Console.WriteLine(i.ToString());
輸出下面的結(jié)果:
agc
mac
ggg
ytx第四種方法:
string str1=我*****是*****一*****個*****教*****師;
string[] str2;
str1=str1.Replace(*****,*) ;
str2=str1.Split(*) ;
foreach(string i in str2)
Console.WriteLine(i.ToString());第五種方法:
string str1=我**是*****一*****個*****教*****師;
我希望顯示的結(jié)果為:我是一個教師。
我如果采用上面的第四種方法來做就會產(chǎn)生下面的錯誤:我 是一個教師。中間有空格輸出,所以輸出結(jié)果并不是希望的結(jié)果,這就又回到了正則表達式了,這時可以采用下面的第五種方法:
string str1=我**是*****一*****個*****教*****師;
string[] str2 = System.Text.RegularExpressions.Regex.Split(str1,@[*]+);
foreach(string i in str2)
Console.WriteLine(i.ToString());
新聞標題:split函數(shù)書寫c語言,split函數(shù)c#
網(wǎng)站網(wǎng)址:http://fisionsoft.com.cn/article/dsiiipd.html