`

C/C++ 字符串处理函数【转】

 
阅读更多
C:

1. 字符串长度
   extern int strlen(char *s); //返回s的长度,不包括结束符NULL

2. 字符串比较
   extern int strcmp(char *s1,char * s2);
   extern int strncmp(char *s1,char * s2,int n);// 比较字符串s1和s2的前n个字符。
   extern int stricmp(char *s1,char * s2);//比较字符串s1和s2,但不区分字母的大小写。
   extern int strnicmp(char *s1,char * s2,int n);//比较字符串s1和s2的前n个字符但不区分大小写。
   extern int bcmp(const void *s1, const void *s2, int n);//比较字符串s1和s2的前n个字节是否相等,如果s1=s2或n=0则返回零,否则返回非零值。bcmp不检查NULL。

   说明:当s1<s2时,返回值<0;当s1=s2时,返回值=0;当s1>s2时,返回值>0

3. 内存字节比较
   extern int memcmp(void *buf1, void *buf2, unsigned int count);
   extern int memicmp(void *buf1, void *buf2, unsigned int count);//比较时不区分字母的大小写。

   说明:比较内存区域buf1和buf2的前count个字节。
        当buf1<buf2时,返回值<0
        当buf1=buf2时,返回值=0
        当buf1>buf2时,返回值>0

4.附加
   extern char *strcat(char *dest,char *src);//把src所指字符串添加到dest结尾处(覆盖dest结尾处的'\0')并添加'\0'。
   extern char *strncat(char *dest,char *src,int n);//把src所指字符串的前n个字符添加到dest结尾处(覆盖dest结尾处的'\0')并添加'\0'。

   说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。返回指向dest的指针。

5.复制
   extern char *strcpy(char *dest,char *src);//把src所指由NULL结束的字符串复制到dest所指的数组中。
   extern char *stpcpy(char *dest,char *src);//同上
   extern char *strncpy(char *dest, char *src, int n);//把src所指由NULL结束的字符串的前n个字节复制到dest所指的数组中。
   extern void bcopy(const void *src, void *dest, int n);//将字符串src的前n个字节复制到dest中,bcopy不检查字符串中的空字节NULL,函数没有返回值。
   extern char *strdup(char *s);复制字符串s,返回指向被复制的字符串的指针,他由malloc()分配且使用后可以由free()释放。

   说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。返回指向dest的指针。


6.内存字节复制
   extern void *memcpy(void *dest, void *src, unsigned int count);//由src所指内存区域复制count个字节到dest所指内存区域。src和dest所指内存区域不能重叠,函数返回指向dest的指针。
   extern void *memmove(void *dest, const void *src, unsigned int count);//同上,但src和dest所指内存区域可以重叠,而复制后src内容会被更改。函数返回指向dest的指针。
   extern void movmem(void *src, void *dest, unsigned int count);//由src所指内存区域复制count个字节到dest所指内存区域。src和dest所指内存区域可以重叠,但复制后src内容会被更改。函数返回指向dest的指针。
   extern void *memccpy(void *dest, void *src, unsigned char ch, unsigned int count);//由src所指内存区域复制不多于count个字节到dest所指内存区域,如果遇到字符ch则停止复制。返回指向字符ch后的第一个字符的指针,如果src前n个字节中不存在ch则返回NULL。ch被复制。

7.查找
   extern char *strchr(char *s,char c);//查找字符串s中首次出现字符c的位置。返回首次出现c的位置的指针,如果s中不存在c则返回NULL。
   extern int strcspn(char *s1,char *s2);//在字符串s1中搜寻s2中所出现的字符。返回第一个出现的字符在s1中的下标值,即在s1中出现而s2中没有出现的子串的长度。
   extern char *strpbrk(char *s1, char *s2);//在字符串s1中寻找字符串s2中任何一个字符相匹配的第一个字符的位置,空字符NULL不包括在内。返回指向s1中第一个相匹配的字符的指针,如果没有匹配字符则返回空指针NULL。
   extern char *strstr(char *haystack, char *needle);//从字符串haystack中寻找needle第一次出现的位置(不比较结束符NULL)。返回指向第一次出现needle位置的指针,如果没找到则返回NULL。

8.内存字节查找
   extern void *memchr(void *buf, char ch, unsigned count);//从buf所指内存区域的前count个字节查找字符ch。如果成功,返回指向字符ch的指针;否则返回NULL。

9.转换
   extern char *strlwr(char *s);//将字符串s转换为小写形式。
   extern char *strupr(char *s);//将字符串s转换为大写形式

10.重置
   extern char *strset(char *s, char c);//把字符串s中的所有字符都设置成字符c。返回指向s的指针。
   extern void bzero(void *s, int n);//置字节字符串s的前n个字节为零。
   extern void setmem(void *buf, unsigned int count, char ch);//把buf所指内存区域前count个字节设置成字符ch。
   extern void *memset(void *buffer, int c, int count);//把buffer所指内存区域的前count个字节设置成字符c。返回指向buffer的指针。

11.倒序
   extern char *strrev(char *s);//把字符串s的所有字符的顺序颠倒过来(不包括空字符NULL)。返回指向颠倒顺序后的字符串指针。

12.分割字符串
   extern char *strtok(char *s, char *delim);//分解字符串为一组标记串。s为要分解的字符串,delim为分隔符字符串。

   说明:首次调用时,s必须指向要分解的字符串,随后调用要把s设成NULL。
         strtok在s中查找包含在delim中的字符并用NULL('\0')来替换,直到找遍整个字符串。
         返回指向下一个标记串。当没有标记串时则返回空字符NULL。

C++:


string str;
1. 字符串长度
   len = str.length();
   len = str.size();

2. 字符串比较
   可以直接比较
   也可以:
   str1.compare(str2);
   str1.compare(pos1,len1,str2,pos2,len2); 值为负,0 ,正。
   nops 长度到完。

3. 附加
   str1 += str2;
   或
   str1.append(str2);
   str1.append(str2.pos2,len2);
 
4. 字符串提取
   str2 = str1.substr();
   str2 = str1.substr(pos1);
   str2 = str1.substr(pos1,len1);

5. 字符串搜索
   where = str1.find(str2);
   where = str1.find(str2,pos1); pos1是从str1的第几位开始。
   where = str1.rfind(str2); 从后往前搜。

6. 插入字符串
   不是赋值语句。
   str1.insert(pos1,str2);
   str1.insert(pos1,str2,pos2,len2);
   str1.insert(pos1,numchar,char);    numchar是插入次数,char是要插入的字符。

7. 替换字符串
   str1.replace(pos1,str2);
   str1.replace(pos1,str2,pos2,len2);

8. 删除字符串
   str.erase(pos,len)
   str.clear();

9. 交换字符串
   swap(str1,str2);

10. C --> C++
   char *cstr = "Hello";
   string str1;
   cstr = cstr;
   string str2(cstr);
分享到:
评论

相关推荐

    纯C++ 字符串处理函数大全源码

    这个"纯C++ 字符串处理函数大全源码"正是为了满足这种需求而设计的,它包含了作者自定义封装的一系列字符串操作函数。 首先,`StringProcess.cpp`和`StringProcess.h`是C++中的源代码文件和头文件。`.cpp`文件通常...

    C/C++字符串,字符转数字,数字转字符

    C/C++语言提供了多种字符串处理函数,其中包括但不限于: 1. 字符串输出函数: - puts():用于输出字符串,并在末尾自动添加换行符。 - printf():用于格式化输出,可以处理多种数据类型。 2. 字符串输入函数: ...

    C语言,C++字符串处理函数

    整数转字符串函数 `Int_Char` ```c char* Int_Char(int n, char s[]) { int Tmp_n = n, Length = 0; while (Tmp_n &gt;= 1) { Length++; Tmp_n /= 10; } for (int i = 0; i ; i++) { Tmp_n = n % 10; n /= ...

    c/c++字符串操作大全

    在C/C++编程语言中,字符串处理是非常常见的需求之一。本篇文章将详细介绍几个常用的字符串操作函数及其使用方法,包括`stpcpy`、`strcat`、`strchr`、`strcmp`、`strncmpi`、`strcpy`以及`strcspn`。 #### 1. ...

    C语言字符串函数大全C/C++基础 字符串操作大全

    根据提供的信息,我们可以详细探讨几个重要的C语言字符串处理函数,这些函数是进行字符串操作的基础工具。下面我们将逐一介绍这些函数的功能、用法以及提供具体的示例代码。 ### 1. stpcpy #### 功能 `stpcpy` 函数...

    C/C++ 字符串转化成数字,支持任意进制

    在C/C++编程中,将字符串转化成数字是一项常见的任务,尤其在处理用户输入或解析数据时。这个程序可能涉及到将表示任意进制的字符串转换为对应的整数值。以下是关于这个话题的一些详细知识点: 1. **字符串与数字的...

    c/c++复制字符串到剪粘板中

    C/C++复制字符串到剪粘板中 C/C++复制字符串到剪粘板中是指将字符串复制到剪粘板中,以便在其他应用程序中使用。这可以通过Win32 API和MFC来实现。 在Win32 API中,可以使用OpenClipboard、GetClipboardData、...

    C++常用字符串处理函数及使用示例

    C++常用字符串处理函数及使用示例

    c/c++函数大全(标准函数)

    C/C++函数大全通常包括了各种标准库提供的函数,这些函数涵盖了输入/输出、数学运算、字符串处理、内存管理等多个方面。下面将详细介绍一些重要的C/C++标准函数。 1. 输入/输出函数: - `printf` 和 `scanf`:这是...

    c++字符串操作函数集合整理

    C++ 字符串操作函数集合整理 本文将对 C++ 中的字符串操作函数进行整理,总结了多种字符串操作函数的用途、函数定义、返回值、附加说明和范例。 1. bcmp() - 比较内存内容 函数定义:`int bcmp(const void *s1, ...

    一些C++ 专用的字符串处理函数集

    一些C++ 专用的字符串处理函数集,主要包括以下函数:  包括:  IsNumeric——检查串是否为数字串  Upcase——变成大写串  Lowercase——变成小写串  Trim——截掉串尾的空格  RTrim——截掉串开始处的...

    VC/C++ 字符编码格式转换

    同时,注意处理字符串长度和缓冲区大小,避免溢出问题。 在提供的`main.cpp`文件中,很可能会包含使用这两个API函数实现的编码转换示例。你可以通过编译并运行这个文件,观察其转换效果。配合`字符编码格式转换说明...

    C++字符串处理系统

    根据给定的文件信息,我们可以总结出以下有关“C++字符串处理系统”的详细知识点: ### 一、项目背景与目标 #### 1.1 课题描述 本项目旨在使用C++语言开发一个字符串处理系统,该系统具备多种功能,包括但不限于:...

    C++字符串处理大集合

    C++字符串处理大集合 在 C++ 中,字符串处理是非常重要的一部分,对于初学者来说,掌握字符串处理函数是非常必要的。下面我们将对 C++ 中的字符串处理函数进行详细的介绍。 C 语言字符串处理函数 1. 字符串长度:...

    常用字符串处理函数

    在C++编程中,字符串处理是常见的任务,MFC(Microsoft Foundation Classes)提供了一系列的类和函数来方便开发者处理字符串。以下是一些常用的字符串处理函数的详细解释: 1. **stpcpy**: 这个函数用于将源字符串`...

    C++ 通过字符串调用函数

    在C++编程中,通过字符串调用函数是一种高级特性,通常涉及到函数指针、元编程或者更复杂的语言机制。这个示例代码可能演示了如何在运行时根据字符串内容找到并执行相应的函数。这种技术在某些场景下非常有用,比如...

    c/c++ 字符集 gbk/utf8互转,Ansi/Utf8互转 纯c实现跨平台

    综上所述,`c/c++ 字符集 gbk/utf8互转,Ansi/Utf8互转 纯c实现跨平台`涉及了字符编码理论、字符串处理和跨平台编程技术。通过理解这些知识点,并结合提供的源代码,开发者可以构建出能够在各种环境下正确处理字符...

    C/C++实现字符串模糊匹配

    需求:  准入授权配置文件有时候分了好几个维度进行配置,例如 company|product|sys这种格式的配置: 1.配置 “sina|weibo|pusher” 表示... 面对这个需求我第一时间想的是如何设计模式串,如何快速实现功能,因为我现

    C/C++ 标准库函数 (中文版)

    标准C库中包含丰富的函数,如标准I/O函数用于执行输入输出操作,标准字符串函数用于处理C风格的字符串,标准数学函数提供数学计算功能,标准时间日期函数用于处理时间日期数据,标准内存函数用于动态内存分配和释放...

Global site tag (gtag.js) - Google Analytics