strlen
sizeof总结
下面这段小程序是输入一个数字N,然后在字符串前面加N个空格,实际使用过程中发现用sizeof的时候他总是4,也就是指针的大小,因而输出了hell少了个o,上次在调LCD的时候用memset发现用strlen清空不了一个数组,必须用sizeof,总结得出sizeof就是数组在内存中的大小,strlen是字符串的长度不带'\0'。而sizeof的用法是sizeof(int),或者sizeof(array)得出它们在内存中的大小。
1 #include
2 #include
3 #include
4 int main(void)
5 {
6 int n1,i,num;
7 char *array = "hello";
8 char *tmp;
9 puts("输入一唯长度");
10 tmp = array;
11 num = strlen(array);
12 scanf("%d",&n1);
13 array=(char *)malloc((n1 + num)*sizeof(int));
14 for (i = 0; i < n1; i++)
15 {
16 array[i] = ' ';
17 printf("%c\t",array[i]);
18 }
19 memcpy(array+n1-1,tmp,strlen(tmp));
20 printf("%s\n",array);
21 free(array);
22 return 0;
23 }
memcpy,memset,memmove,strcpy,strncpy
今天发现一个问题,strcpy 和 strncpy 拷贝的时候要注意保证他们拷贝到的地址有没有足够的空间存放。
阅读(1810) | 评论(0) | 转发(0) |