strlen
C 标准库 - <string.h>
描述
计算字符串 str
的长度,直到空结束字符,但不包括空结束字符。
声明
size_t strlen(const char *str)
参数
str
-- 要计算长度的字符串。
返回值
返回字符串的长度。
#include <stdio.h>
#include <string.h>
int main () {
char str[50];
int len;
strcpy(str, "This is w3cschool.cn");
len = strlen(str);
printf("|%s| 的长度是 |%d|\n", str, len);
return 0;
}
|This is w3cschool.cn| 的长度是 |20|
——————————————————————————————
strcat
C 标准库 - <string.h>
描述
把 src
所指向的字符串追加到 dest
所指向的字符串的结尾。
声明
char *strcat(char *dest, const char *src)
参数
dest
-- 指向目标数组,该数组包含了一个 C 字符串,且足够容纳追加后的字符串。
src
-- 指向要追加的字符串,该字符串不会覆盖目标字符串。
返回值
返回一个指向最终的目标字符串 dest
的指针。
#include <stdio.h>
#include <string.h>
int main () {
char src[50], dest[50];
strcpy(src, "This is source");
strcpy(dest, "This is destination");
strcat(dest, src);
printf("最终的目标字符串: |%s|", dest);
return(0);
}
最终的目标字符串: |This is destinationThis is source|
——————————————————————————————
strncat
C 标准库 - <string.h>
描述
把 src 所指向的字符串追加到 dest 所指向的字符串的结尾,直到 n 字符长度为止。
声明
char *strncat(char *dest, const char *src, size_t n)
参数
dest
-- 指向目标数组,该数组包含了一个 C 字符串,且足够容纳追加后的字符串,包括额外的空字符。
src
-- 要追加的字符串。
n
-- 要追加的最大字符数。
返回值
返回一个指向最终的目标字符串 dest 的指针。
#include <stdio.h>
#include <string.h>
int main () {
char src[50], dest[50];
strcpy(src, "This is source");
strcpy(dest, "This is destination");
strncat(dest, src, 12);
printf("最终的目标字符串: |%s|", dest);
return(0);
}
最终的目标字符串: |This is destinationThis is sour|
——————————————————————————————
strcmp
C 标准库 - <string.h>
描述
把 str1
所指向的字符串和 str2
所指向的字符串进行比较。
声明
int strcmp(const char *str1, const char *str2)
参数
str1
-- 要进行比较的第一个字符串。
str2
-- 要进行比较的第二个字符串。
返回值
如果返回值< 0
,则表示 str1
小于 str2
。
如果返回值> 0
,则表示 str2
小于 str1
。
如果返回值= 0
,则表示 str1
等于 str2
。
#include <stdio.h>
#include <string.h>
int main () {
char str1[15];
char str2[15];
int ret;
strcpy(str1, "amy");
strcpy(str2, "anx");
ret = strcmp(str1, str2);
if (ret < 0) {
printf("str1 小于 str2");
} else if (ret > 0) {
printf("str2 小于 str1");
} else {
printf("str1 等于 str2");
}
return(0);
}
str1 小于 str2
——————————————————————————————
strncmp
C 标准库 - <string.h>
描述
把 str1
和 str2
进行比较,最多比较前 n
个字符。
声明
int strncmp(const char *str1, const char *str2, size_t n)
参数
str1
-- 要进行比较的第一个字符串。
str2
-- 要进行比较的第二个字符串。
n
-- 要比较的最大字符数。
返回值
如果返回值< 0
,则表示 str1
小于 str2
。
如果返回值> 0
,则表示 str2
小于 str1
。
如果返回值= 0
,则表示 str1
等于 str2
。
#include <stdio.h>
#include <string.h>
int main () {
char str1[15];
char str2[15];
int ret;
strcpy(str1, "aBy1234");
strcpy(str2, "abx5678");
ret = strncmp(str1, str2, 4);
if (ret < 0) {
printf("str1 小于 str2");
}
else if (ret > 0) {
printf("str2 小于 str1");
} else {
printf("str1 等于 str2");
}
return(0);
}
str1 小于 str2
——————————————————————————————
memset
C 标准库 - <string.h>
描述
复制字符 c
(一个无符号字符)到参数 str
所指向的字符串的前 n
个字符。
声明
void *memset(void *str, int c, size_t n)
参数
str
-- 指向要填充的内存块。
c
-- 要被设置的值。该值以 int
形式传递,但是函数在填充内存块时是使用该值的无符号字符形式。
n
-- 要被设置为该值(c
)的字符数。
返回值
返回一个指向存储区 str
的指针。
#include <stdio.h>
#include <string.h>
int main () {
char str[50];
strcpy(str,"This is string.h library function");
puts(str);
memset(str,'$',7);
puts(str);
return(0);
}
This is string.h library function
$$$$$$$ string.h library function
——————————————————————————————
strcpy
C 标准库 - <string.h>
描述
把 src
所指向的字符串复制到 dest
。
声明
char *strcpy(char *dest, const char *src)
参数
dest
-- 指向用于存储复制内容的目标数组。
src
-- 要复制的字符串。
返回值
返回一个指向最终的目标字符串 dest 的指针。
#include <stdio.h>
#include <string.h>
int main() {
char src[40];
char dest[100];
strcpy(src, "This is w3cschool.cn");
strcpy(dest, src);
printf("最终的目标字符串: %s\n", dest);
return(0);
}
最终的目标字符串: This is w3cschool.cn
——————————————————————————————
strncpy
C 标准库 - <string.h>
描述
把 src
所指向的字符串复制到 dest
,最多复制 n
个字符。当 src
的长度小于 n
时,dest
的剩余部分将用空字节填充。
声明
char *strncpy(char *dest, const char *src, size_t n)
参数
dest
-- 指向用于存储复制内容的目标数组。
src
-- 要复制的字符串。
n
-- 要从源中复制的字符数。
返回值
返回最终复制的字符串。
#include <stdio.h>
#include <string.h>
int main() {
char src[40];
char dest[12];
memset(dest, '\0', sizeof(dest));
strcpy(src, "This is w3cschool.cn");
strncpy(dest, src, 10);
printf("最终的目标字符串: %s\n", dest);
return(0);
}
最终的目标字符串: This is w3
——————————————————————————————
strchr
(chr:character的缩写)
C 标准库 - <string.h>
描述
在参数 str
所指向的字符串中搜索第一次出现字符 c
(一个无符号字符)的位置。
声明
char *strchr(const char *str, int c)
参数
str
-- 要被检索的 C 字符串。
c
-- 在 str
中要搜索的字符。
返回值
返回在字符串 str
中第一次出现字符 c
的位置,如果未找到该字符则返回 NULL
。
#include <stdio.h>
#include <string.h>
int main () {
const char str[] = "http://www.w3cschool.cn";
const char ch = '.';
char *ret = strchr(str, ch);
printf("|%c| 之后的字符串是 - |%s|\n", ch, ret);
return(0);
}
|.| 之后的字符串是 - |.w3cschool.cn|
——————————————————————————————
strrchr
C 标准库 - <string.h>
描述
在参数 str
所指向的字符串中搜索最后一次出现字符 c
(一个无符号字符)的位置。
声明
char *strrchr(const char *str, int c)
参数
str
-- C 字符串。
c
-- 要搜索的字符。以 int
形式传递,但是最终会转换回 char
形式。
返回值
返回 str
中最后一次出现字符 c
的位置。乳沟未找到该值,则函数返回一个空指针。
#include <stdio.h>
#include <string.h>
int main () {
int len;
const char str[] = "http://www.w3cschool.cn";
const char ch = '.';
char *ret = strrchr(str, ch);
printf("|%c| 之后的字符串是 - |%s|\n", ch, ret);
return(0);
}
|.| 之后的字符串是 - |.cn|
——————————————————————————————
strstr
C 标准库 - <string.h>
描述
在字符串 haystack
中查找第一次出现字符串 needle
的位置,不包含终止符 '\0'。
声明
char *strstr(const char *haystack, const char *needle)
参数
haystack
-- 要被检索的 C 字符串。
needle
-- 在 haystack
字符串内要搜索的小字符串。
返回值
返回在 haystack
中第一次出现 needle
字符串的位置,如果未找到则返回NULL
。
#include <stdio.h>
#include <string.h>
int main() {
const char haystack[20] = "W3CSchool";
const char needle[10] = "School";
char *ret = strstr(haystack, needle);
printf("子字符串是: %s\n", ret);
return(0);
}
子字符串是: School
——————————————————————————————
sprintf
C 标准库 - <stdio.h>
描述
发送格式化输出到 str
所指向的字符串。
声明
int sprintf(char *str, const char *format, ...)
参数
str
-- 这是指向一个字符数组的指针,该数组存储了 C 字符串。
format
-- 这是字符串,包含了要被写入到字符串 str 的文本。它可以包含嵌入的 format
标签,format
标签可被随后的附加参数中指定的值替换,并按需求进行格式化。format
标签属性是 %[flags][width][.precision][length]specifier
附加参数 -- 根据不同的 format
字符串,函数可能需要一系列的附加参数,每个参数包含了一个要被插入的值,替换了 format
参数中指定的每个 % 标签。参数的个数应与 % 标签的个数相同。
返回值
如果成功,则返回写入的字符总数,不包括字符串追加在字符串末尾的空字符。如果失败,则返回一个负数。
#include <stdio.h>
#include <math.h>
int main() {
char str[80];
sprintf(str, "Pi 的值 = %f", M_PI);
puts(str);
return(0);
}
Pi 的值 = 3.141593
网友评论