### int (*p)[10];//数组指针
### int *p[10];//指针数组
char *strchr(char const*str,int ch)
/在字符串str中查找字符ch第一次出现的位置,找到后函数返回一个指向该位置的指针,不存在返回NULL指针/
strchr(string,’h’);
/最后一次出现位置/
/一组。。。第一次/
strpbrk(string,”aeiou”);
/查找s1中s2第一次出现位置,存在返回指向该位置的指针,否则返回NULL指针,若s2为空字符串则返回s1/
char *my_strrstr(const char *dest, const char *src)
{
const char *ret = NULL;
const char *last = NULL;
assert(dest);
assert(src);
if (*src == ‘\0’)
return (char *)dest;
while (ret = strstr(dest, src))
{
last = ret;
dest = ret + 1;
}
return (char *)last;
}
用于在字符串的起始位置对字符计数
group字符串指定一个或多个字符。strspn返回str起始部分匹配group中任意字符的字符数。
函数说明:strtok()用来将字符串分割成一个个片段。参数s 指向欲分割的字符串,参数delim 则为分割字符串,当strtok()在参数s 的字符串中发现到参数delim 的分割字符时则会将该字符改为\0 字符。在第一次调用时,strtok()必需给予参数s 字符串,往后的调用则将参数s 设置成NULL。每次调用成功则返回下一个分割后的字符串指针。
返回值:返回下一个分割后的字符串指针,如果已无从分割则返回NULL。
char s[] = "ab-cd : ef;gh :i-jkl;mnop;qrs-tu: vwx-y;z";
char *delim = "-:;";
char *p;
printf("%s ", strtok(s, delim));
while ((p = strtok(NULL, delim)))
printf("%s ", p);
printf("\n");
iscntrl 任何控制字符
isspace 空白字符:空格’ ‘, 换页’\f’, 换行‘\n’, 回车’r’, 制表符’\t’ 垂直制表符’\v’
isdigit 十进制数字
isxdigit 十六进制数字
islower 小写字母
isupper 大写字母
isalpha 字母
isalnum 数字或字母
ispunct 标点符号,任何不属于数字或字母的图形字符
isgraph 任何图形字符
isprint 任何可打印字符
int tolower(int ch)
int toupper(int ch)
返回值说明:返回指向dest的void *指针
例:
char a[100], b[50];
memcpy(b, a,sizeof(b)); //注意如用sizeof(a),会造成b的内存地址溢出。
memcpy(d,s,strlen(s));:复制全部
memcpy(d,s+14,4);//从第14个字符(V)开始复制,连续复制4个字符
返回值说明:返回指向dest的void *指针
参数说明:dest,source分别为目标串和源串的首地址。count为要移动的字符的个数
函数说明:memmove用于从source拷贝count个字符到dest,如果目标区域和源区域有重叠的话,memmove能够保证源串在被覆盖之前将重叠区域的字节拷贝到目标区域中。
比较length个字节
找n个字节
char ch[10]
比如memset(ch,0,8),就是把数组ch前八项置为零,后面的不一定为零。比如刚开始ch[1]=’z’,ch[8]=’a’,ch[9]=’b’,经过memset后,ch[1]为零了,而ch[8],ch[9]都不变.