解析在后面
解析:
p1-1:
当s1<s2时,返回为负数;
当s1==s2时,返回值= 0;
当s1>s2时,返回正数。
即:两个字符串自左向右逐个字符相比(按ASCII值大小相比较),直到出现不同的字符或遇'\0'为止。如:
特别注意:strcmp(const char *s1,const char * s2)这里面只能比较字符串,即可用于比较两个字符串常量,或比较数组和字符串常量,不能比较数字等其他形式的参数。
ANSI标准规定,返回值为正数,负数,0 。而确切数值是依赖不同的C实现的。
p1-2:
这里的0其实就是'\0'
p1-4:
该函数将指定的表达式的值所对应的字符输出到标准输出终端上。表达式可以是字符型或整型,它每次只能输出一个字符。[2] 例如:“putchar('#')”输出字符“#”。
p1-5:
gets():从stdio流中读取字符串,直至接受到换行符或EOF时停止,并将读取的结果存放在buffer指针所指向的字符数组中。换行符不作为读取串的内容,读取的换行符被转换为‘\0’空字符,并由此来结束字符串。
puts():puts()函数用来向标准输出设备(屏幕)输出字符串并换行,具体为:把字符串输出到标准输出设备,将'\0'转换为回车换行。其调用方式为,puts(s);其中s为字符串字符(字符串数组名或字符串指针)。
gets()函数从标准输入(键盘)读入一行数据,所谓读取一行,就是遇到换行符就返回。gets()函数并不读取换行符'\n',它会把换行符替换成空字符'\0',作为c语言字符串结束的标志。
gets()函数经常和puts()函数配对使用,puts()函数用于显示字符串,并自动在字符串后面添加一个换行标志'\n'。
x2-1:
字符数组、字符指针处理字符串;
字符数组在内存中占用连续的单元,确定地址,每个数组元素放字符串的一个字符,字符串就存放在数组中;
字符指针只占用一个可以存放地址的内存单元,存放字符串首字符的地址,而不是将字符串放到字符指针变量中去;
x2-2:
str指向“abcdefgh”
t 指向“abcdefgh”
p指向“abcdefgh”
strlen(t)= 8;
p一开始指向“a”,+4指向“e”,因此最终指向“efgh”