1、strlen
描述
C 库函数 size_t strlen(const char *str)
计算字符串 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 runoob.com");
len = strlen(str);
printf("|%s| 的长度是 |%d|\n", str, len);
return(0);
}
output
|This is runoob.com| 的长度是 |18|
2、strcpy
C 库函数 char *strcpy(char *dest, const char *src) 把 src 所指向的字符串复制到 dest。
需要注意的是如果目标数组 dest 不够大,而源字符串的长度又太长,可能会造成缓冲溢出的情况。
#include <stdio.h>
#include <string.h>
int main ()
{
char str1[]="Sample string";
char str2[40];
char str3[40];
strcpy (str2,str1);
strcpy (str3,"copy successful");
printf ("str1: %s\nstr2: %s\nstr3: %s\n",str1,str2,str3);
return 0;
}
output
str1: Sample string
str2: Sample string
str3: copy successful
3、memcpy
C 库函数 void *memcpy(void *str1, const void *str2, size_t n)
从存储区 str2 复制 n 个字节到存储区 str1。
void *memcpy(void *str1, const void *str2, size_t n)
参数
- str1 – 指向用于存储复制内容的目标数组,类型强制转换为 void* 指针。
- str2 – 指向要复制的数据源,类型强制转换为 void* 指针。
- n – 要被复制的字节数。
返回值
- 该函数返回一个指向目标存储区 str1 的指针。
#include <stdio.h>
#include<string.h>
int main()
{
char *s="http://www.bryant.com";
char d[20];
memcpy(d, s+11, 6);// 从第 11 个字符(r)开始复制,连续复制 6 个字符(runoob)
// 或者 memcpy(d, s+11*sizeof(char), 6*sizeof(char));
d[6]='\0';
printf("%s", d);
return 0;
}
output
bryant
#include<stdio.h>
#include<string.h>
int main(void)
{
char src[] = "***";
char dest[] = "abcdefg";
printf("使用 memcpy 前: %s\n", dest);
memcpy(dest, src, strlen(src));
printf("使用 memcpy 后: %s\n", dest);
return 0;
}
output
使用 memcpy 前: abcdefg
使用 memcpy 后: ***defg