目录
前言
字符函数和字符串函数都是在编程中用来处理字符和字符串的函数。
字符函数是用来处理单个字符的函数,比如查找、替换、转换大小写、比较等操作。
字符串函数是用来处理整个字符串的函数,比如查找、替换、连接、分割等操作。
长度不受限字符串函数
一、strlen 的使⽤和模拟实现
1.描述
C 库函数 size_t strlen(const char *str) 计算字符串 str 的长度,直到空结束字符,但不包括空结束字符。
2.声明
下面是 strlen() 函数的声明。
size_t strlen(const char *str)
3.实例
下面的实例演示了 strlen() 函数的用法。
二、strcpy 的使⽤和模拟实现
1.描述
C 库函数 char *strcpy(char *dest, const char *src) 把 src 所指向的字符串复制到 dest。
需要注意的是如果目标数组 dest 不够大,而源字符串的长度又太长,可能会造成缓冲溢出的情况。
2.声明
下面是 strcpy() 函数的声明。
char *strcpy(char *dest, const char *src)
3.参数
- dest -- 指向用于存储复制内容的目标数组。
- src -- 要复制的字符串。
4.返回值
该函数返回一个指向最终的目标字符串 dest 的指针。
5.实例
下面的实例演示了 strcpy() 函数的用法。
三、strcat 的使⽤和模拟实现
描述
C 库函数 char *strcat(char *dest, const char *src) 把 src 所指向的字符串追加到 dest 所指向的字符串的结尾。
声明
下面是 strcat() 函数的声明。
char *strcat(char *dest, const char *src)
参数
- dest -- 指向目标数组,该数组包含了一个 C 字符串,且足够容纳追加后的字符串。
- src -- 指向要追加的字符串,该字符串不会覆盖目标字符串。
返回值
该函数返回一个指向最终的目标字符串 dest 的指针。
实例
下面的实例演示了 strcat() 函数的用法。
四、 strcmp 的使⽤和模拟实现
1.描述
C 库函数 int strcmp(const char *str1, const char *str2) 把 str1 所指向的字符串和 str2 所指向的字符串进行比较。
2.声明
下面是 strcmp() 函数的声明。
int strcmp(const char *str1, const char *str2)
3.参数
- str1 -- 要进行比较的第一个字符串。
- str2 -- 要进行比较的第二个字符串。
4.返回值
该函数返回值如下:
- 如果返回值小于 0,则表示 str1 小于 str2。
- 如果返回值大于 0,则表示 str1 大于 str2。
- 如果返回值等于 0,则表示 str1 等于 str2。
5.实例
下面的实例演示了 strcmp() 函数的用法。
6.实例
长度受限函数
1. strncpy 函数的使⽤
描述
C 库函数 char *strncpy(char *dest, const char *src, size_t n) 把 src 所指向的字符串复制到 dest,最多复制 n 个字符。当 src 的长度小于 n 时,dest 的剩余部分将用空字节填充。
声明
下面是 strncpy() 函数的声明。
char *strncpy(char *dest, const char *src, size_t n)
参数
- dest -- 指向用于存储复制内容的目标数组。
- src -- 要复制的字符串。
- n -- 要从源中复制的字符数。
返回值
该函数返回最终复制的字符串。
实例
下面的实例演示了 strncpy() 函数的用法。
int main()
{
char arrl[]= "abcdef";
char arr2[20]="xxxxxxxxxx";
strncpy(arr2, arrl,3);
printf("%s\n", arr2);
return 0;
}
2. strncat 函数的使⽤
描述
C 库函数 char *strncat(char *dest, const char *src, size_t n) 把 src 所指向的字符串追加到 dest 所指向的字符串的结尾,直到 n 字符长度为止。
声明
下面是 strncat() 函数的声明。
char *strncat(char *dest, const char *src, size_t n)
参数
- dest -- 指向目标数组,该数组包含了一个 C 字符串,且足够容纳追加后的字符串,包括额外的空字符。
- src -- 要追加的字符串。
- n -- 要追加的最大字符数。
返回值
该函数返回一个指向最终的目标字符串 dest 的指针。
实例
下面的实例演示了 strncat() 函数的用法。
int main()
{
char arrl[]= "abcdef";
char arr2[20]="xx";
strncpy(arr2, arrl,3);
printf("%s\n", arr2);
return 0;
}
3. strncmp函数的使⽤
描述
C 库函数 int strcmp(const char *str1, const char *str2) 把 str1 所指向的字符串和 str2 所指向的字符串进行比较。
声明
下面是 strcmp() 函数的声明。
int strcmp(const char *str1, const char *str2)
参数
- str1 -- 要进行比较的第一个字符串。
- str2 -- 要进行比较的第二个字符串。
返回值
该函数返回值如下:
- 如果返回值小于 0,则表示 str1 小于 str2。
- 如果返回值大于 0,则表示 str1 大于 str2。
- 如果返回值等于 0,则表示 str1 等于 str2。
实例
下面的实例演示了 strcmp() 函数的用法。
#include <stdio.h>
#include <string.h>
int main ()
{
char str1[15];
char str2[15];
int ret;
strcpy(str1, "abcdef");
strcpy(str2, "ABCDEF");
ret = strcmp(str1, str2);
if(ret < 0)
{
printf("str1 小于 str2");
}
else if(ret > 0)
{
printf("str1 大于 str2");
}
else
{
printf("str1 等于 str2");
}
return(0);
}
八、 strstr 的使⽤和模拟实现
描述
C 库函数 char *strstr(const char *haystack, const char *needle) 在字符串 haystack 中查找第一次出现字符串 needle 的位置,不包含终止符 '\0'。
声明
下面是 strstr() 函数的声明。
char *strstr(const char *haystack, const char *needle)
参数
- haystack -- 要被检索的 C 字符串。
- needle -- 在 haystack 字符串内要搜索的小字符串。
返回值
该函数返回在 haystack 中第一次出现 needle 字符串的位置,如果未找到则返回 null。
实例
下面的实例演示了 strstr() 函数的用法。
九、strtok 函数的使⽤
描述
C 库函数 char *strtok(char *str, const char *delim) 分解字符串 str 为一组字符串,delim 为分隔符。
声明
下面是 strtok() 函数的声明。
char *strtok(char *str, const char *delim)
参数
- str -- 要被分解成一组小字符串的字符串。
- delim -- 包含分隔符的 C 字符串。
返回值
该函数返回被分解的第一个子字符串,如果没有可检索的字符串,则返回一个空指针。
实例
下面的实例演示了 strtok() 函数的用法。
十、strerror 函数的使⽤
描述
C 库函数 char *strerror(int errnum) 从内部数组中搜索错误号 errnum,并返回一个指向错误消息字符串的指针。strerror 生成的错误字符串取决于开发平台和编译器。
声明
下面是 strerror() 函数的声明。
char *strerror(int errnum)
参数
- errnum -- 错误号,通常是 errno。
返回值
该函数返回一个指向错误字符串的指针,该错误字符串描述了错误 errnum。
实例
下面的实例演示了 strerror() 函数的用法。