memchr -- 在内存空间中搜索一个字符
memcmp -- 比较内存空间
memcpy -- 拷贝内存空间
memmove -- 拷贝内存空间
memset -- 使用一个常量字节填充内存空间
strcat -- 连接字符串
strcmp -- 比较字符串
strcpy -- 拷贝字符串
strlen -- 获取字符串的长度
strncat -- 连接字符串(受限)
strncmp -- 比较字符串(受限)
strncpy -- 拷贝字符串(受限)
1. memchr
#include<stdio.h>
#include<string.h>
//void *memchr(const void *s, int c, size_t n);
int main()
{
char str="Hello World!";
char *pstr=0;
pstr=(char*)memchr(str,'W',100);
if(ptr!=0) printf("找到字符W");
else printf("没找到字符W");
return 0;
}
2. memcmp
#include<stdio.h>
#include <string.h>
//int memcmp(const void *s1, const void *s2, size_t n);
int main()
{
char str1[10] = "tql";
char str2[10] = "tql";
if (memcmp(str1, str2, 10) == 0)
printf("两个内存空间完全一致!\n");
else
printf("两个内存空间不一致!\n");
return 0;
}
/*备注
返回值<0:字符串 1 的字符小于字符串 2 对应位置的字符返回值
返回值=0:两个字符串的内容完全一致
返回值>0:字符串 1 的字符大于字符串 2 对应位置的字符
3. memcpy
没看懂 下一个
4. memmove
同上
5.memset
用于初始化
例如 memset(c,0,sizeof(c));
tips:
mem 开头的主要是用于针对内存空间处理,不过由于内存空间的单位也是字节(跟字符串一
样),所以看着两个函数是一样的(事实上返回值就不一样了,一个是返回 char *,一个是
返回 void *)。不过在一定的条件下,mem 打头的效率要高一些。
//也许吧 反正我看不懂
6.strcat
#include <stdio.h>
#include <string.h>
//char *strncat(char *dest, const char *src);
int main()
{
char str1[100] = "Hello";
char str2[] = "World!";
printf("str1: %s\n", str1);
strcat(str1, " ");
printf("str1: %s\n", str1);
strcat(str1, str2);
printf("str1: %s\n", str1);
return 0;
//这个简单 T_T
}
7. strcmp
#include <stdio.h>
#include <string.h>
//int strcmp(const char *s1, const char *s2);
int main()
{
char str1[10] = "FishC.com";
char str2[20] = "FishC.com";
if (!strcmp(str1, str2))
printf("两个字符串完全一致!\n");
else
printf("两个字符串不同!\n");
return 0;
}
/*返回值<0:字符串 1 的字符小于字符串 2 对应位置的字符返回值
返回值=0:两个字符串的内容完全一致
返回值>0:字符串 1 的字符大于字符串 2 对应位置的字符
8. strcpy
#include <stdio.h>
#include <string.h>
//char *strcpy(char *dest, const char *src);
int main()
{
char str1[] = "Original String";
char str2[] = "New String";
char str3[100];
strcpy(str1, str2);
strcpy(str3, "Copy Successful");
printf("str1: %s\n", str1);
printf("str2: %s\n", str2);
printf("str3: %s\n", str3);
return 0;
}
9.strlen
懂得都懂
10.strncat
#include <stdio.h>
#include <string.h>
//char *strncat(char *dest, const char *src, size_t n);
int main()
{
char str1[20] = "Hello";
char str2[20] = "World";
strncat(str1, " ", 2);
strncat(str1, str2, 10);
printf("str1: %s\n", str1);
return 0;
}
11. strncmp
#include <stdio.h>
#include <string.h>
//int strncmp(const char *s1, const char *s2, size_t n);
int main()
{
char str1[40] = "FishC";
char str2[40] = "FishC.com";
if (!strncmp(str1, str2, 5))
printf("str1和str2前5个字符相同!\n");
else
printf("str1和str2前5个字符不同!\n");
return 0;
}
12. strncpy
#include <stdio.h>
#include <string.h>
//char *strncpy(char *dest, const char *src, size_t n);
int main()
{
char str1[] = "To be or not to be";
char str2[];
char str3[];
strncpy(str2, str1, sizeof(str2));
strncpy(str3, str2, 5);
str3[5] = '\0';
printf("%s\n", str1);
printf("%s\n", str2);
printf("%s\n", str3);
return 0;
}