c语言学习记录二
可变参数列表 (一种良好定义的方法访问数量未定的参数列表)
通过宏(stdarg)来实现,注意参数列表中的省略号,提示此处可能传递数量和类型未确定的参数,可变参数必须从头到尾按照顺序逐个访问,所有作为可变参数传递给函数的值都将执行缺省参数类型提升。
数组和指针的区别:(数组和指针并不是相等的,在内存分配上的区别)
字符串的长度并不包含空字节,对应字符内部也不能出现空字节,否则会引起相应错误。
注意在使用strlen计算字符串长度时,由于strlen返回的是无符号整数类型,故在表达式中使用无符号数可能导致不可预料的结果。
strpbrk查找任何一组字符第一次在字符串中出现的位置 (查找任何几个字符)
函数原型 char *strpbrk(char const *str,char const *group)
这个函数返回一个指向str中第一个匹配group中任何一个字符的字符位置,如果未找到匹配,则返回一个空指针。
strstr函数可以在字符串中查找一个子串。(查找一个子串)
函数原型:char *strstr(char const *s1,char const *s2);
这个函数在s1中查找整个s2第一次出现的起始位置,并返回一个指向该位置的指针,如果s2没有完整的出现在s1的任何地方,函数将返回一个空指针。如果第二个参数是一个空字符串,函数就返回s1.
字符转换 转换函数 直接实现大小写字母的转换
int tolower( int ch);
int toupper( int ch);
内存操作(实现对包含空字符的字符串操作)
如果俩个数组均为整型数组,可以使用该语句 memcpy(temp ,values ,sizeof(values));
数组只有部分内容需要被复制,需要复制的数量必须在第三个参数中指明。
memcpy(saved_answers, answers, count * sizeof ( answers[0] ) );