`
thesp2
  • 浏览: 54500 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

C语言实现几个简单的字符串处理函数

阅读更多
很久没写C程序了,写的时候又是习惯性的到网上找现成的程序,但是一些简单的不如自己写写,当温习了。正好要处理字符串,就从字符串处理开始吧。
/**
 * 判断字符串是否以某个字符串开头
 * @param str 目标字符串
 * @param reg 要比较的字符串
 * @return 如果以指定字符串开头返回true,否则返回false
 * */
bool str_startwith(const char *str, const char *reg) {
	while (*str && *reg && *str == *reg) {
		str ++;
		reg ++;
	}
	if (!*reg) return true;
	return false;
}

/**
 * 判断字符串是否以某个字符串结尾
 * @param str 目标字符串
 * @param reg 要比较的字符串
 * @return 如果以指定字符串结尾则返回true,否则返回false
 * */
bool str_endwith(const char *str, const char *reg) {
	int l1 = strlen(str), l2 = strlen(reg);
	if (l1 < l2)	return false;
	str += l1 - l2;
	while (*str && *reg && *str == *reg) {
		str ++;
		reg ++;
	}
	if (!*str && !*reg) return true;
	return false;
}

/**
 * 替换字符串里的字符
 * @param str 目标字符串
 * @param f 要被替换字符
 * @param reg 替换的字符
 * */
void str_replace(char *str, const char f, const char rep) {
	while (*str) {
		if (*str == f) {
			*str = rep;
		}
		str ++;
	}
}

/**
 * 用指定的字符串分割字符串,比如“Hello World”用“ ”分割后变<br>
 * 成“Hello”和“World”。<br>
 * @param str 要操作的字符串
 * @param sp 分隔符
 * @param out 分割后的字符串数组,通常以char buf[][]来声明
 * @param max 单个字符串的最大长度
 * @param num 预期分割后的字符串个数,不能超过字符串数组的一维数
 * @return 返回实际分割后的字符串数量
 * */
int str_split(const char *str, const char *sp, char **out, 
              int max, int num) {
	char *s1 = (char *)str;
	char *s2 = NULL;
	int slen = strlen(sp);
	int count = 0;
	while (s1 && count < num) {
		char *d = ((char *)out + max * count);
		s2 = strstr(s1, sp);
		if (s2) {
			strncpy(d, s1, (s2 - s1) > (max - 1) ? (max - 1) : (s2 - s1));
			s1 = s2 + slen;
		} else {
			strcpy(d, s1);
			s1 = s2;
		}
		count ++;
	}
	return count;
}

/**
 * 用指定的字符串分割字符串,比如“Hello World”用“ ”分割后变<br>
 * 成“Hello”和“World”。<br>
 * @param str 要操作的字符串
 * @param off 要操作的字符串的偏移量
 * @param len 要操作的字符串长度
 * @param sp 分隔符
 * @param out 分割后的字符串数组,通常以char buf[][]来声明
 * @param max 单个字符串的最大长度
 * @param num 预期分割后的字符串个数,不能超过字符串数组的一维数
 * @return 返回实际分割后的字符串数量
 * */
int str_split(const char *str, int off, int len, const char *sp, 
              char **out, int max, int num) {
	char *cp = (char *) malloc (len + 1);
        if (!cp) return 0;
	memset(cp, 0, (len + 1));
	memcpy(cp, str + off, len);
	int ret = str_split(cp, sp, out, max, num);
	free(cp);
	return ret;
}


注:先这么多,以后如果写了新的或者有了修改,再来更新
0
0
分享到:
评论
2 楼 thesp2 2010-08-16  
果然没有bool,我用g++编译的,所以没注意到,惭愧!
1 楼 mmxcq 2010-08-09  
我的印象中c语言好像没bool类型

相关推荐

    C语言字符串处理函数

    几个字符串处理函数增强版 常用需求基本都能完成 已经编译成DLL 函数列表 兼容字符和串 void revstr char str 字符串反转 int substring char res int pos int len char substr 从pos开始取len个字符到substr中 ...

    C语言字符串练习(习题+答案).zip

    3. 字符串连接:strcat()和strncat()函数用于连接两个字符串,理解它们的区别和使用场景,以及注意防止溢出。 4. 字符串查找:strchr()和strstr()函数分别用于查找字符和子字符串在字符串中的位置。 5. 字符串长度...

    C语言指针实现字符串的反转

    "C语言指针实现字符串的反转"这个标题表明本文的主要内容是使用C语言中的指针来实现字符串的反转操作。 描述解释 本文的描述部分解释了本文的主要内容,即提供了两个C语言指针实现字符串的反转程序,並且欢迎有...

    字符串处理函数

    下面将详细介绍几个关键的字符串处理函数。 1. **求长度** `length()`函数用于获取字符串的长度,不包含终止符`\0`。例如: ```cpp std::string ss = "Hello"; int len = ss.length(); // len 等于5 ``` 2. ...

    C语言字符串处理函数归总

    下面是几个常见的C语言字符串处理函数的介绍: 1. bcmp函数 bcmp函数用于比较两个内存区域中指定长度的字节序列是否相同。其原型为extern int bcmp(const void *s1, const void *s2, int n);。该函数将s1和s2指向...

    C语言匹配两个字符串

    在C语言中,匹配两个字符串是一项基础且重要的任务。它涉及到字符串的基本操作和比较,这对理解和编写各种文本处理程序至关重要。下面将详细讲解如何在C语言中实现字符串的匹配和判断它们之间的包含关系。 首先,...

    字符串计数 C语言实现 ACM习题

    根据给定的信息,本文将对“字符串计数 C语言实现 ACM习题”这一主题进行深入解析,主要包括以下几个方面的内容:题目背景、问题描述、代码分析以及解决方案。 ### 题目背景 本题属于ACM竞赛中的基础练习题,旨在...

    C语言专业课程设计报告字符串处理.doc

    例如,当用户选择1时,程序会要求输入两个字符串并调用`lianjie()`函数进行连接;选择2时,调用`kaobei()`函数进行拷贝;选择3时,调用`bijiao()`函数进行比较;选择4时,调用`qiuchangdu()`函数计算长度;选择5时,...

    各种C语言字符串函数-笔试面试必备

    以下是对几种常见的C语言字符串函数的深入解析及其实现方式。 #### 1. 字符串反转 - strRev 字符串反转是常见的字符串操作之一,主要用于改变字符串的顺序。在C语言中,可以通过多种方式实现字符串的反转,包括但...

    c语言实现md5算法字符串加密(vc调试通过)

    通过VC编译器进行编译和调试,确保函数能够正确处理各种输入字符串,生成一致的MD5摘要。 MD5虽然在安全性上已经不适用于密码存储等高安全需求场景,因为它存在碰撞攻击的可能性,但作为学习哈希算法和数据校验的...

    C语言中字符串处理

    接下来,`strcpy`是C语言标准库中的一个函数,它用于将一个字符串复制到另一个字符串。函数原型为`char *strcpy(char *dest, const char *src)`,其中`dest`是目标字符串,`src`是源字符串。`strcpy`会将`src`中的...

    C语言 设计字符串比较的函数和销售员业绩管理程序

    在函数内部,遍历两个字符串,通过ASCII码值比较找到每个字符串中的最大字符。最后返回这两个最大字符中的较大者。 - **字符比较统计**:再创建一个函数,同样接收两个字符串。这个函数会逐个比较两个字符串的对应...

    常见的C字符串处理函数的源代码

    这个函数用于将一个字符串(`strSrc`)的内容复制到另一个字符串(`strDes`)中。源代码中,它通过一个while循环来逐个复制字符,直到遇到字符串结束符'\0'为止。同时,函数返回了目标字符串的指针,即`strDes`。 `...

    C语言字符串处理函数归总(比较全)[归类].pdf

    本文将详细讲解几个重要的字符串处理函数,包括`bcmp`、`bcopy`、`bzero`以及`memccpy`。 首先,`bcmp`函数用于比较两个字符串的前n个字节是否相等。它的原型是`extern int bcmp(const void *s1, const void *s2, ...

    C语言实现字符串操作函数的实例

    strcmp函数用于比较两个字符串,及对两个字符串对应的字符逐个进行比较,直到发现不匹配。那个最先不匹配的字符中较“小”的那个字符所在的字符串被认为“小于”另外一个字符串。如果其中一个字符串是另外一个字符串...

    高速字符串处理功能的 C 语言源程序.zip_C语言_c语言 字符串

    5. **性能基准测试**:比较原生的C语言字符串函数与这些优化后的函数,验证性能提升。 通过学习和应用这些高速字符串处理方法,你可以在处理大量字符串数据时显著提高程序性能,这对于大数据分析、文本处理、网络...

    C语言专业课程设计字符串处理.doc

    【C语言专业课程设计字符串处理】的目的是让学生在教师的指导下,通过选定的字符串处理课题,运用所学的C语言程序设计知识,进行问题分析、模块设计、编码、调试和运行,以提升解决实际问题的能力。课程设计的核心是...

    有一个字符串,内有若干个字符,今输入一个字符,要求程序将字符串中该字符删去。用外部函数实现。

    - `print_string`函数:在`file1.c(文件4)`中定义,简单地使用`printf`函数打印字符串,以`%s`格式说明符输出整个字符串。 5. **流程控制**:程序的运行流程清晰明了,首先通过`enter_string`函数获取字符串,然后...

    经典C语言字符串函数大全 为学好C语言打下坚实基础

    本文将详细介绍几个常用的C语言字符串函数,并通过示例代码来加深理解。 #### 1. `stpcpy` `stpcpy`函数用于复制源字符串到目标字符串,并返回目标字符串的指针。与`strcpy`类似,但它确保最后一个字符被正确复制...

Global site tag (gtag.js) - Google Analytics