1 strstr(str1,str2) 此时千万要记住,这是在判断str2是否是str1的子串!!
strstr方法会比较str1和str2,判断str2是否是str1的子串,如果是,则返回str2在str1中首次出现的地址;如果不是,则返回null;
2 memset 函数是内存赋值函数,用来给某一块内存空间进行赋值的。 其原型是:void* memset(void *_Dst, int _Val, size_t _Size)
_Dst是目标起始地址,_Val是要赋的值,_Size是要赋值的字节数。
int num[8];
我们用memset给str初始化为{1,1,1,1,1,1,1,1},
memset(num,1,8);//这样是不对的
一个int是4个字节的,8个int是32个字节,所以首先要赋值的长度就不应该为8而是32。
因为memset是 逐字节 拷贝,以num为首地址的8字节空间都被赋值为1,
即一个int变为0X00000001 00000001 00000001 00000001,显然,把这个数化为十进制不会等于1的。
所以,在memset使用时要千万小心,在给char以外的数组赋值时,只能初始化为0或者-1
3 .函数原型 char *strcpy(char *dest,const char *src)
从src地址开始且含有null结束符的字符串复制到以dest地址开始的字符串中,并返回指向dest的指针。通俗的讲就是将 src字符数组复制到dest数组中,如果dest数组本身有数据,会把src里的数据全部复制到dest中,如果dest中有数据小于src地址长度的将会被覆盖,而大于src长度的将保留。
4 feof用于判断文件结尾。头文件。使用方法是feof(fp),fp为指向需要判断的文件的指针。如果不到文件结尾,返回0值;如果是文件结尾,返回非0.
但是feof有一个点是会读取最后一个字符两次
假设文件包含10字节,并且你读取了十字节,调用feof函数,函数返回值均为0,这是因为尽管文件指针这时已经指向文件尾了,但是你没有试图越过文件尾读取数据,只有当你尝试了读取第十一个字节时,调用feof,函数才会返回0
EOF一般代表-1
peek()方法预读取下一个字符(不管是何符号)
fstream inFile;
inFile.open(fileName, ios::in);
while(!inFile.eof()&&inFile.peek()!=EOF){
//相关的读取操作
}
5 sizeof是一个操作符不是一个函数,sizeof返回的是内存的大小,sizeof一个指针结果一直为4,指针的大小为4,sizeof一个结构体必须要是整数倍,
strlen返回长度 遇到结束符’\0’ 返回
6
查找一个字符c在另一个字符串str中末次出现的位置(也就是从str的右侧开始查找字符c首次出现的位置),并返回这个位置的地址。如果未能找到指定字符,那么函数将返回NULL。使用这个地址返回从最后一个字符c到str末尾的字符串。
#include <string.h>
#include <stdio.h>
int main(void)
{
char string[20];
char *ptr, c = 'r';
strcpy(string, "There are two rings");
ptr = strrchr(string, c);
if (ptr)
printf("The character %c is at position: %s\n", c, ptr);
else
printf("The character was not found\n");
return 0;
}
strrchr返回的指针应当指向”rings”里的’r’,而不是“There”或”are”里的’r’。
运行结果是:The character r is at position:rings
7
函数原型:extern char *strchr(char *str,char character)
参数说明:str为一个字符串的指针,character为一个待查找字符。
所在库名:#include <string.h>
函数功能:从字符串str中寻找字符character第一次出现的位置。
返回说明:返回指向第一次出现字符character位置的指针,如果没找到则返回NULL。
#include<string.h>
#include<stdio.h>
int main()
...{
char *str="Hello,I am sky2098,I liking programing!";
char character='k' ; //指定一个字符
char *strtemp;
strtemp=strchr(str,character);
if(strtemp!=NULL)
...{
printf("%s ",strtemp);
}
else
...{
printf("can not find %c !",strtemp);
}
return 0;
}