Easier Done Than Said?(应用到的知识)

Posted 青衫客36

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Easier Done Than Said?(应用到的知识)相关的知识,希望对你有一定的参考价值。

memset(b,0,sizeof(b))

对于大块儿内存的分配,例如int arr[100];定义了数组arr,包含100个元素,如果你写成int arr[100]=0;想将数组全部内容初始化为0,是不行的,连编译都不能通过。这种情况的初始化,有两种方法,一种是一个一个的初始化,如for(int i=0;i<100;i++)arr[i]=0;就完成了数组的初始化。另一种方法,就是使用memset:一个语句就够了--memset(arr,0,sizeof(int)*100);
各参数解释如下:arr是数组的首地址,0就是要讲这些地址的内容赋值为0,sizeof(int)求出int类型的长度,乘以100就表示arr数组的整个长度。

strcmp():

头文件:#include <string.h>

strcmp() 用来比较字符串(区分大小写),其原型为:
    int strcmp(const char *s1, const char *s2);

【参数】s1, s2 为需要比较的两个字符串。

字符串大小的比较是以ASCII 码表上的顺序来决定,此顺序亦为字符的值。strcmp()首先将s1 第一个字符值减去s2 第一个字符值,若差值为0 则再继续比较下个字符,若差值不为0 则将差值返回。例如字符串"Ac"和"ba"比较则会返回字符"A"(65)和‘b‘(98)的差值(-33)。

【返回值】若参数s1 和s2 字符串相同则返回0。s1 若大于s2 则返回大于0 的值。s1 若小于s2 则返回小于0 的值。

注意:strcmp() 以二进制的方式进行比较,不会考虑多字节或宽字节字符;如果考虑到本地化的需求,请使用 strcoll() 函数。

【实例】对 4 组字符串进行比较。

#include <string.h>
main(){
    char *a = "aBcDeF";
    char *b = "AbCdEf";
    char *c = "aacdef";
    char *d = "aBcDeF";
    printf("strcmp(a, b) : %d\n", strcmp(a, b));
    printf("strcmp(a, c) : %d\n", strcmp(a, c));
    printf("strcmp(a, d) : %d\n", strcmp(a, d));
}

输出结果:
strcmp(a, b) : 32
strcmp(a, c) :-31
strcmp(a, d) : 0

以上是关于Easier Done Than Said?(应用到的知识)的主要内容,如果未能解决你的问题,请参考以下文章

1658: Easier Done Than Said?

hdu 1039 Easier Done Than Said?

hdu 1039 Easier Done Than Said?

HDU1039 Easier Done Than Said?

HDU 1039 Easier Done Than Said?

HDU 1039 Easier Done Than Said?