微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > C语言中字符串操作

C语言中字符串操作

时间:11-27 来源:互联网 点击:

char *strset(char *string, int c);
将string串的所有字符设置为字符c, 遇到NULL结束符停止. 函数返回内容调整后的string指针.

char *strnset(char *string, int c, size_t count);
将string串开始count个字符设置为字符c, 如果count值大于string串的长度, 将用string的长度替换count值. 函数返回内容调整后的string指针.

size_t strspn(const char *string, const char *strCharSet);
查 找任何一个不包含在strCharSet串中的字符 (字符串结束符NULL除外) 在string串中首次出现的位置序号.返回一个整数值, 指定在string中全部由characters中的字符组成的子串的长度. 如果string以一个不包含在strCharSet中的字符开头, 函数将返回0值.

size_t strcspn(const char *string, const char *strCharSet);
查找strCharSet串中任何一个字符在string串中首次出现的位置序号, 包含字符串结束符NULL.
返回一个整数值, 指定在string中全部由非characters中的字符组成的子串的长度. 如果string以一个包含在strCharSet中的字符开头, 函数将返回0值.

char *strspnp(const char *string, const char *strCharSet);
查找任何一个不包含在strCharSet串中的字符 (字符串结束符NULL除外) 在string串中首次出现的位置指针. 返回一个指针, 指向非strCharSet中的字符在string中首次出现的位置.

char *strpbrk(const char *string, const char *strCharSet);
查找strCharSet串中任何一个字符在string串中首次出现的位置, 不包含字符串结束符NULL.
返回一个指针, 指向strCharSet中任一字符在string中首次出现的位置. 如果两个字符串参数不含相同字符, 则返回NULL值.

int strcmp(const char *string1, const char *string2);
比较字符串string1和string2大小.
返回值< 0, 表示string1小于string2;
返回值为0, 表示string1等于string2;
返回值> 0, 表示string1大于string2.

int stricmp(const char *string1, const char *string2);
比较字符串string1和string2大小,和strcmp不同, 比较的是它们的小写字母版本.返回值与strcmp相同.

int strcmpi(const char *string1, const char *string2);
等价于stricmp函数, 只是提供一个向后兼容的版本.

int strncmp(const char *string1, const char *string2, size_t count);
比较字符串string1和string2大小,只比较前面count个字符. 比较过程中, 任何一个字符串的长度小于count, 则count将被较短的字符串的长度取代. 此时如果两串前面的字符都相等, 则较短的串要小.
返回值< 0, 表示string1的子串小于string2的子串;
返回值为0, 表示string1的子串等于string2的子串;
返回值> 0, 表示string1的子串大于string2的子串.

int strnicmp(const char *string1, const char *string2, size_t count);
比较字符串string1和string2大小,只比较前面count个字符. 与strncmp不同的是, 比较的是它们的小写字母版本.返回值与strncmp相同.

char *strtok(char *strToken, const char *strDelimit);
在strToken 串中查找下一个标记, strDelimit字符集则指定了在当前查找调用中可能遇到的分界符. 返回一个指针, 指向在strToken中找到的下一个标记. 如果找不到标记, 就返回NULL值. 每次调用都会修改strToken内容, 用NULL字符替换遇到的每个分界符.

c++概念字符串操作

一、char_traits 字符特征类
1)意义:包装特定串元素的通用行为界面,以便容器实现时依据特征信息而执行特定行为
2)定义了通用类型名

typedef _Elem char_type;
typedef int int_type;
typedef streampos pos_type;
typedef streamoff off_type;
typedef mbstate_t state_type;

其中 int_type 表示字符元素转换到特定编码时的整型表示,pos_type, off_type 分别作为字符串索引和字符串元素偏移的类型,类似容器迭中的指针,迭代类型和指针,迭代器的偏移类型。最后的 state_type 用于存储流状态,如出错,格式控制等等。

3)定义了字符 / 字符串操作的包装界面,以便通用算法的调用

assign(a, b) 定义将 b 字符赋值给 a 字符的过程,实现 a.operator = 的行为
eq(a, b) 定义 a 字符和 b 字符的相等关系,实现 a.operator == 的行为
lt(a, b) 定义 a 小于 b 的关系,实现 a.operator < 的行为
compare(a_ptr, b_ptr, cnt) 定义两组字符串的比较,返回 int 类型,实现类似 memcmp 的行为
length(ptr) 定义取字符串长度,实现类似 strlen 的行为
copy(a_ptr, b_ptr, cnt) 定义两组字符串的复制,实现类似 memcpy 的行为
move(a_ptr, b_ptr, cnt) 定义两组字符串的不重叠复制,实现类似 memmove 的行为
assign(ptr, cnt, ch) 定义了填充字符串的过程,实现类似 memset 的行为
to_int_type(ch) 定义了 char_type 到 int_type 整型的转换过程
to_char_type(n) 定义了 int_type 到 char_type 字符型的转换过程
eq_int_type(a, b) 定义两个和当前 char_type 类型对应的 int_type 的相等关系
eof() 定义字符串结尾符,使用整型表示
not_eof(n) 定义非字符串结尾符,若输入结尾符,则返回 1,其他输入返回原值,即总是不返回 eof()

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top