`

字符串操作——靠字符串分割字符串

 
阅读更多
/*
 * 字符串分解函数。注意strtok比较复杂。要妥善运用!
 * 也可以不用strtok函数,但要实现字符串靠字符串分割比较困难!
 * 注意str指向的空间必须是可读可写的(如数组或动态分配的空间),
 * 不能为字符串常量的指针,因为strtok改变了其中的内容。
 */


#include <stdio.h>
#include <string.h>

/*
 * 功能:将str中的字符串按照elemone,elemtwo分割,
 * 注意分隔符的顺序从后至前,原因在strtok上
 * strtok会改变str中的数据!
 * 然后将elemone前面的字符串再按elemtwo分割,
 * 将分割后结果分别存放到相应字符数组中。
 * 使用n防止缓冲区溢出
 */
void 
str_strip(char *str, char *elemone, char *elemtwo, 
				char *bufstart, char *bufmid, char *bufend, int n)
{
	char *buf;
	buf =  strtok(str, elemone); //buf中保存12-17, str中也保存的是12-17了
	//printf("1. Now buf: %s, str:%s\n", buf, str);
	strncpy(bufend, str = strtok(NULL, elemone), n); //bufend中保存了2
	//str = 没有太多作用,主要是这个字符串会改变str中的字符,这样写以后str中的值是elemone后面的字符串,比较符合逻辑
	
	//printf("2. Now buf: %s, str:%s\n", buf, str);
	
	strncpy(bufstart, strtok(buf, elemtwo), n); //bufstart中保存了12
	//printf("3. Now buf: %s\n", buf);
	strncpy(bufmid, strtok(NULL, elemtwo), n); //bufend中保存了17
	//printf("4. Now buf: %s\n", buf);
	/*综合上述:strtok的功能:以arg 2为分隔符,
	                          第一次取出前半部分,返回前半部分字符的地址,并将分隔符写'\0'即ASCII码0;
	                          第二次取出后半部分,返回后半部分开始字符的地址。
							  第二次必须传入NULL,否则无法取出后面部分,因为此时str已经是被分割后的前半部分字符串了*/ 
}

int main(void)
{
	char str[] = "12-17/2";
	char *elemone = "/";
	char *elemtwo = "-";
	char bufstart[3], bufmid[3], bufend[3]; 

	printf("String:%s ", str);
	str_strip(str, "/", "-", bufstart, bufmid, bufend, 3);
			
	printf("is strop to: %s %s %s\n", bufstart, bufmid, bufend);
	return 0;
}

 

0
0
分享到:
评论

相关推荐

    字符串截取查询分割字符串

    为了更好地理解这些概念,我们可以查看提供的两个文件——“截取字符串.txt”和“split分割字符串.txt”。在“截取字符串.txt”中,可能会有各种截取字符串的例子,包括不同的起始位置和结束位置,以及如何处理负数...

    广工数据结构课程设计字符串操作

    在本课程设计“广工数据结构课程设计字符串操作”中,我们将专注于一个特定的数据结构——字符串,并探讨如何对其进行高效的操作。字符串在编程中扮演着重要角色,无论是处理用户输入、文本分析还是数据存储,都离不...

    plsql中的字符串分割.txt

    这个标签简单明了地指出了本文讨论的核心主题——字符串分割。字符串分割是在很多编程语言中都非常基础且重要的操作之一,尤其是在处理文本数据时。 ### 部分内容解释 这部分内容看起来是一段PL/SQL代码示例,但...

    c语言实现字符串分割strsplit.c

    注 意:存储分割后的子字符串列表的变量str_list是用动态内存分配函数malloc分配的,在使用完str_list后要及时释放其所占用的内存。 ———————————————— 版权声明:本文为CSDN博主「logan_lei」的原创...

    格式化写入字符串_labview_

    在LabVIEW中,字符串操作是相当重要的,因为它们在数据表示、日志记录、用户界面交互等方面发挥着关键作用。格式化写入字符串通常涉及到将数据以特定的格式输出到文本文件、控制台或者用户界面上。下面,我们将详细...

    实例014——根据指定字符分割字符串.zip

    在编程领域,分割字符串是一项常见的任务,特别是在处理文本数据时。这个实例014的核心是讲解如何根据指定的字符来分割一个字符串。在各种编程语言中,都有相应的函数或方法来实现这一操作。这里我们将主要探讨在...

    js字符串截取

    #### split —— 分割字符串 `split()` 方法用于把一个字符串分割成字符串数组。 ```javascript var arr1 = a.split(""); // arr1 的值为 ["h", "e", "l", "l", "o"] ``` #### length —— 字符串长度 `length` ...

    JS——字符串

    - `split(separator[, limit])`:根据分隔符将字符串分割成数组。 - `replace(regexp|substr, newSubstr|function)`:替换匹配到的部分。 - `trim(), trimLeft(), trimRight()`:去除字符串两侧、左侧或右侧的...

    华为od-华为od练习题之字符串分割.zip

    这个压缩包“华为od-华为od练习题之字符串分割.zip”显然包含了与字符串处理相关的练习题目,可能是为了考察应聘者在Python编程语言中的字符串操作能力。 【描述】描述中的“华为od_华为od练习题之字符串分割.zip”...

    深入了解java中的String-字符串(csdn)————程序.pdf

    Java中的String类是编程中非常基础且重要的部分,它代表不可...掌握这些知识点有助于理解和优化Java中的字符串操作,提高代码质量和性能。在实际开发中,合理利用这些特性能够帮助我们编写出更高效、更易于维护的代码。

    python 字符串.zip

    11. `str.split([sep[, maxsplit]])`: 按照指定分隔符`sep`将字符串分割成多个子串,返回子串列表。不指定`sep`时,按空格分割。 12. `str.join(iterable)`: 将可迭代对象(如列表)中的元素连接成一个字符串,每个...

    C#字符串常用方法和实例,适合初学者

    本文将深入探讨C#中字符串的常用方法及其应用示例,特别适合初学者掌握基础的字符串操作技巧。 ### 字符串不可变性 C#中的字符串具有一个核心特性——不可变性。这意味着一旦一个字符串被创建,其内容不能被直接...

    C#字符串处理工具【CS】

    例如,对于长字符串的处理,工具可能包含分割字符串成数组的功能,便于逐个处理每个部分;在查找替换方面,工具可能支持正则表达式,使得复杂的文本查找和替换变得轻松快捷。 字符串转换是另一个核心亮点。此工具...

    现在有一个字符串“90,56,45,38,79,85”,按照从小到大排序——字符串排序

    这通常通过将字符串分割成数组来完成,可以使用`split()`方法,该方法根据给定的分隔符(在这里是逗号)将字符串切割。例如: ```java String str = "90,56,45,38,79,85"; String[] numbersStr = str.split(","); `...

    ios Objective-C分类 (category),字符串的拆分(componentsSeparatedByCharactersInSet)

    在这个场景中,我们关注的是Objective-C中的两个关键概念:分类(Category)和字符串操作——字符串的拆分(componentsSeparatedByCharactersInSet)。下面将详细解释这两个知识点。 首先,Objective-C的分类是一种...

    java作品,字符串

    5. 分割字符串:`split()`方法按照指定的分隔符将字符串分割成字符串数组。 ```java String[] words = str1.split(" "); ``` 三、字符串与字符数组 Java中的字符串不能直接转换为字符数组,但可以使用`toCharArray...

    字符串反解析成树结构

    这个过程通常涉及到从一串预定义格式的字符串中提取信息,并将这些信息构建成一个具有层级关系的数据结构——树。在这个场景下,我们使用的编程语言是Java,它提供了丰富的库和工具来帮助我们实现这一目标。 首先,...

    ACM 入门——字符串处理及随机数

    `strtok`函数用于将字符串分解为一系列标记,通过指定的分隔符`delim`来分割。首次调用时,`s`应指向要分解的字符串,后续调用设置`s`为`NULL`。`strtok`会修改原始字符串,所以在使用时需要注意对原始数据的保护。...

    Python对字符串实现去重操作的方法示例

    2. **使用`filter()`**:在使用`re.split()`分割字符串后,可能会产生一些空字符串(`''`)。为了去除这些不必要的元素,可以通过`filter()`函数进行过滤。 3. **使用`set()`进行去重**:`set()`是Python内置的一种...

    Java8 将List<Integer> 转换成以逗号分割的String字符串

    这里的`reduce`方法接受两个参数:初始值(这里为空字符串`""`)和一个二元操作函数(`(a, b) -&gt; a + "," + b`),它将每个元素与之前的累积结果合并,最终得到一个完整的字符串。 2. 使用`collect`和`Collectors....

Global site tag (gtag.js) - Google Analytics