<string.h>中的一些常用库函数

 

参考资料:

  [1]:菜鸟教程

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 
 4 char s[100]="0123456789\0";
 5 /**
 6     如果读取s的格式为scanf("%s",s+1);从s+1位置开始读取;
 7     那么,len=strlen(s+1),字符范围[1,len];
 8     s[len+1]='\0';
 9     注意strlen()中的参数一定是s+1;
10 */
11 
12 /*******************strcpy*************************/
13 void testStrcpy()
14 {
15     /*
16         strcpy把含有'\0'结束符的字符串复制到另一个地址空间;
17         返回值的类型为char*。
18     */
19     char t[100];
20     strcpy(t+0,s+0);//复制s从0位置到结束的字符
21     t[strlen(t)]='\0';//最好在最后加上
22     printf("***test strcpy***\n");
23     printf("%s\n",t);
24 }
25 /*******************memcpy*************************/
26 void testMemcpy()
27 {
28     /*
29         memcpy(void *s1, const void *s2,int n)
30         从 s2 复制 n 个字符到 s1。
31     */
32     char t[100];
33     memcpy(t,s+3,4);//从第3个字符('3')开始复制,连续复制4个字符(t="3456")
34     t[4]='\0';//最好在最后加上
35     printf("***test memcpy***\n");
36     printf("%s\n",t);
37 
38     /*
39         memcpy(int *a+i,const int *b+j,n*sizeof(int))
40         从 b 的 j 位置开始复制连续的 n 个数字到 a 的以 i 位置开始的连续的 n 个位置中
41         n:代表复制 b 中的连续的 n 个数字
42         sizeof(int):需要复制数字的单个的大小
43         如果需要复制 double 类型的,改成sizeof(double)即可
44     */
45     int a[5]={-1,-1,-1,-1,-1};//memcpy后:{-1,1,2,3,-1}
46     int b[5]={ 0, 1, 2, 3, 4};
47     memcpy(a+1,b+1,3*sizeof(int));//从b的1位置开始复制连续的3个数字到a+1中
48     for(int i=0;i < 5;++i)
49         printf("%d%c",a[i],i == 4 ? '\n':' ');
50 }
51 /*******************memcmp*************************/
52 void testMemcmp()
53 {
54     /*
55         memcmp(const char *str1, const char *str2,size_t n))
56         把 str1 和 str2 的前 n 个字节进行比较。
57         如果返回值 < 0,则表示 str1 小于 str2。
58         如果返回值 = 0,则表示 str1 等于 str2。
59         如果返回值 > 0,则表示 str1 大于 str2。
60     */
61     char t[100];
62     strcpy(t,"order");
63     
64     printf("***test memcmp***\n");
65     printf("%s\n",memcmp(t,"order",strlen(t)) == 0 ? "YES":"NO");//YES
66 }
67 int main()
68 {
69     testStrcpy();
70     testMemcpy();
71     testMemcmp();
72 }
View Code

 

posted @ 2019-05-06 11:17  HHHyacinth  阅读(176)  评论(0编辑  收藏  举报