很久没写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;
}
注:先这么多,以后如果写了新的或者有了修改,再来更新
分享到:
相关推荐
几个字符串处理函数增强版 常用需求基本都能完成 已经编译成DLL 函数列表 兼容字符和串 void revstr char str 字符串反转 int substring char res int pos int len char substr 从pos开始取len个字符到substr中 ...
3. 字符串连接:strcat()和strncat()函数用于连接两个字符串,理解它们的区别和使用场景,以及注意防止溢出。 4. 字符串查找:strchr()和strstr()函数分别用于查找字符和子字符串在字符串中的位置。 5. 字符串长度...
"C语言指针实现字符串的反转"这个标题表明本文的主要内容是使用C语言中的指针来实现字符串的反转操作。 描述解释 本文的描述部分解释了本文的主要内容,即提供了两个C语言指针实现字符串的反转程序,並且欢迎有...
下面将详细介绍几个关键的字符串处理函数。 1. **求长度** `length()`函数用于获取字符串的长度,不包含终止符`\0`。例如: ```cpp std::string ss = "Hello"; int len = ss.length(); // len 等于5 ``` 2. ...
下面是几个常见的C语言字符串处理函数的介绍: 1. bcmp函数 bcmp函数用于比较两个内存区域中指定长度的字节序列是否相同。其原型为extern int bcmp(const void *s1, const void *s2, int n);。该函数将s1和s2指向...
在C语言中,匹配两个字符串是一项基础且重要的任务。它涉及到字符串的基本操作和比较,这对理解和编写各种文本处理程序至关重要。下面将详细讲解如何在C语言中实现字符串的匹配和判断它们之间的包含关系。 首先,...
根据给定的信息,本文将对“字符串计数 C语言实现 ACM习题”这一主题进行深入解析,主要包括以下几个方面的内容:题目背景、问题描述、代码分析以及解决方案。 ### 题目背景 本题属于ACM竞赛中的基础练习题,旨在...
例如,当用户选择1时,程序会要求输入两个字符串并调用`lianjie()`函数进行连接;选择2时,调用`kaobei()`函数进行拷贝;选择3时,调用`bijiao()`函数进行比较;选择4时,调用`qiuchangdu()`函数计算长度;选择5时,...
以下是对几种常见的C语言字符串函数的深入解析及其实现方式。 #### 1. 字符串反转 - strRev 字符串反转是常见的字符串操作之一,主要用于改变字符串的顺序。在C语言中,可以通过多种方式实现字符串的反转,包括但...
通过VC编译器进行编译和调试,确保函数能够正确处理各种输入字符串,生成一致的MD5摘要。 MD5虽然在安全性上已经不适用于密码存储等高安全需求场景,因为它存在碰撞攻击的可能性,但作为学习哈希算法和数据校验的...
接下来,`strcpy`是C语言标准库中的一个函数,它用于将一个字符串复制到另一个字符串。函数原型为`char *strcpy(char *dest, const char *src)`,其中`dest`是目标字符串,`src`是源字符串。`strcpy`会将`src`中的...
在函数内部,遍历两个字符串,通过ASCII码值比较找到每个字符串中的最大字符。最后返回这两个最大字符中的较大者。 - **字符比较统计**:再创建一个函数,同样接收两个字符串。这个函数会逐个比较两个字符串的对应...
这个函数用于将一个字符串(`strSrc`)的内容复制到另一个字符串(`strDes`)中。源代码中,它通过一个while循环来逐个复制字符,直到遇到字符串结束符'\0'为止。同时,函数返回了目标字符串的指针,即`strDes`。 `...
本文将详细讲解几个重要的字符串处理函数,包括`bcmp`、`bcopy`、`bzero`以及`memccpy`。 首先,`bcmp`函数用于比较两个字符串的前n个字节是否相等。它的原型是`extern int bcmp(const void *s1, const void *s2, ...
strcmp函数用于比较两个字符串,及对两个字符串对应的字符逐个进行比较,直到发现不匹配。那个最先不匹配的字符中较“小”的那个字符所在的字符串被认为“小于”另外一个字符串。如果其中一个字符串是另外一个字符串...
5. **性能基准测试**:比较原生的C语言字符串函数与这些优化后的函数,验证性能提升。 通过学习和应用这些高速字符串处理方法,你可以在处理大量字符串数据时显著提高程序性能,这对于大数据分析、文本处理、网络...
【C语言专业课程设计字符串处理】的目的是让学生在教师的指导下,通过选定的字符串处理课题,运用所学的C语言程序设计知识,进行问题分析、模块设计、编码、调试和运行,以提升解决实际问题的能力。课程设计的核心是...
- `print_string`函数:在`file1.c(文件4)`中定义,简单地使用`printf`函数打印字符串,以`%s`格式说明符输出整个字符串。 5. **流程控制**:程序的运行流程清晰明了,首先通过`enter_string`函数获取字符串,然后...
本文将详细介绍几个常用的C语言字符串函数,并通过示例代码来加深理解。 #### 1. `stpcpy` `stpcpy`函数用于复制源字符串到目标字符串,并返回目标字符串的指针。与`strcpy`类似,但它确保最后一个字符被正确复制...