#include <string.h>
// 将str字符以spl分割,存于dst中,并返回子字符串数量
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的用法如下:
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>")
输出结果:
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>")
输出结果:
aaa
bbb
ccc
ddd
eee
3、用单个字符来分隔:
string str="aaajbbbjccc"
string[] sArray=str.Split('j')
foreach(string i in sArray) Response.Write(i.ToString() + "<br>")
输出结果:
aaa
bbb
ccc
////////////////////////////////////////////////
string[] arr = str.Split("o")
这是一个具有语法错误的语句,Split 的 separator 参数应该是 char[] 或 string[],不应是字符串。正确的示例:
string str = "technology"
char[] separator = { 'o' }
string[] arr = str.Split(separator)
////////////////////////////////////////////////////
String.Split 方法有6个重载函数:
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"} 保留空元素
需要注意的是没有重载函数public string[] Split(string[] separator),所以我们不能像VB.NET那样使用words.Split(","),而只能使用words.Split(',')
Split函数描述
返回一个下标从零开始的一维数组,它包含指定数目的子字符串。
语法
Split(expression[, delimiter[, count[, compare]]])
Split函数语法有如下几部分:
部分 描述
expression 必需的。包含子字符串和分隔符的字符串表达式 。如果expression是一个长度为零的字符串(""),Split则返回一个空数组,即没有元素和数据的数组。
delimiter 可选的。用于标识子字符串边界的字符串字符。如果忽略,则使用空格字符(" ")作为分隔符。如果delimiter是一个长度为零的字符串,则返回的数组仅包含一个元素,即完整的expression字符串。
count 可选的。要返回的子字符串数,–1表示返回所有的子字符串。
compare 可选的。数字值,表示判别子字符串时使用的比较方式。关于其值,请参阅“设置值”部分。
设置值
compare参数的设置值如下:
常数 值 描述
vbUseCompareOption –1 用Option Compare语句中的设置值执行比较。
vbBinaryCompare 0 执行二进制比较。
vbTextCompare 1 执行文字比较。
vbDatabaseCompare 2 仅用于Microsoft Access。基于您的数据库的信息执行比较。
示例
下面的示例演示如何在字符串的空格处拆分该字符串。
Dim TestString As String = "Look at these!"
' 返回的数组包含 "Look", "at", and "these!".
Dim TestArray() As String = Split(TestString)