strlen:获取字符串的长度
原型:extern unsigned int strlen(char *s);
#include<stdio.h>
#include<string.h>
int main()
{
char arr1[]="hello world"
int len;
len=strlen(arr1);
printf("%d",len);
return 0;
}
strcpy:复制字符串
原型:char* strcpy(char* _Dest, const char* _Source);
#include<stdio.h>
#include<string.h>
int main()
{
char arr1[]="hello chinese";
char arr2[20]={0};
dtrcpy(arr2,arr1);
printf("%s\n",arr2);
return 0;
}
srtcat:追加字符串
原型:char* strcat(char* destination,const char* source);
#include <string.h>
#include <stdio.h>
#include<assert.h>
char*my_strcat(char*str, const char*src)
{
char*tmp = str;
assert(str != NULL);
assert(src != NULL);
while (*str != '\0')str++;
while (*src != '\0')
*str++ = *src++;
return tmp;
}
int main(void)
{
char arr[20] = "你好";
char*arr1 = "狗子!";
my_strcat(arr, arr1);
printf("%s\n", arr);
return 0;
}
strcmp:比较字符串
原型:int strcmp(const char *s1, const char *s2);
#include <string.h>
#include <stdio.h>
int main()
{
char arr1[] = "hello";
char arr2[] = "hello";
char arr3[] = "Hello";
if (strcmp(arr1, arr2) == 0)
printf("arr1和arr2相等\n");
else
printf("arr1和arr2不相等\n");
if (strcmp(arr1, arr3) == 0)
printf("arr1和arr3相等\n");
else
printf("arr1和arr3不相等\n");
return 0;
}
strstr:查找子串
原型:extern char *strstr(char *str1, const char *str2);
#include <string.h>
#include <stdio.h>
int main()
{
char *arr1 = "he he he ha ha ha hello world ";
char *arr2 = "hello";
char *s = strstr(arr1, arr2);
printf("%s\n", s);
return 0;
}
strncmp:比较两个字符串的字符
原型:int strncmp ( const char * str1, const char * str2, size_t n );
#include<string.h>
#include<stdio.h>
int main(void)
{
char *arr1="aaabbb",*arr2="bbbccc",*arr3="ccc";
int p;
ptr=strncmp(arr2,arr1,3);
if(p>0)
printf("arr2 is greater than arr1\n");
else if(p<0)
printf("arr2 is less than arr1\n");
ptr=strncmp(arr2,arr3,3);
if(p>0)
printf("arr2 is greater than arr3\n");
else if(p<0)
printf("arr2 is less than arr3\n");
return(0);
}
strncpy:将一个字符串的字符复制到另一个字符串
原型声明:char strcpy(char dest, const char *src);
#include<stdio.h>
#include<string.h>
int main()
{
char arr1[]="Three people";
strncpy(arr1,"dog",3);
printf("%s",arr1);
return 0;
}
strncat:追加字符串的字符
原型:extern char *strncat(char *dest,char *src,int n)
#include<stdio.h>
#include<string.h>
int main()
{
char arr1[]="hello";
char arr2[]="china";
strnact(arr1,arr2,20);
printf("%s",arr1);
return 0;
}
memcpy:在缓冲区之间复制字符
原型:extern void *memcpy(void *dest, void *src, unsigned int count);
#include <stdio.h>
#include <string.h>
int main()
{
char* s = "hello china";
char d[20];
memcpy(d, s, (strlen(s)+1));
printf("%s\n", d);
return 0;
}
memmove:拷贝内存中内容
原型:void memmove( void dest, const void* src, size_t count );
#include <stdio.h>
#include <string.h>
int main()
{
char s[] = "abcdefghijk";
memmove(s, s+3, strlen(s) + 1 - 3);
printf("%s", s);
getchar();
return 0;
}
(1)strcpy()函数只对字符串进行操作;memmove()和memcpy()函数对所有类型都适用,为内存拷贝;
(2)strcpy()以’\0’为拷贝的结束条件;而memmove()和memcpy()函数则是以第三个参数num进行控制拷贝;