C/C++
字符类小知识
当函数的参数类型为char*时,他将无法被一个const char*类型的值所赋值
int main_Operate::rte_number(char* Name);
rte_number("data/student_fill.txt"); //调用失败 const char* 类型的实参和 char* 类型的形参不兼容
int main_Operate::rte_number(const char* Name); //修改后调用成功
%[^\t] 占位符可以一直读取文本,直到读到\t为止。这个\t是可以更改的,改成\n则为直到读到\n为止
char text[50];
fscanf("%[^\t]",text); //直到读到\t才停止
字符类函数
fgetc 文件读取单个字符
fgetc函数返回的字符实际上是文件流中位置指针指向的字符。当fgetc函数读取错误时,返回EOF并设置文件错误标志位。该函数以无符号char强制转换为int的形式返回读取的字符,如果到达文件末尾或出现读错,则返回EOF。可以用char或者int类型接收。
//不断读取fp文件中的每一个字符,赋值给ch。当ch为EOF时则退出循环
while (EOF != (ch = fgetc(fp)))
{
if (ch == '\n')
i++;
}
strcpy 拷贝字符串
是将一个字符串复制到另一块空间地址中 的函数,‘\0’是停止拷贝的终止条件,同时也会将 '\0' 也复制到目标空间
更详细的文章请看:【C语言】strcpy()函数_Candysrf的博客-优快云博客
strstr(this->file[i].code_color, "红") //code_color 为char数组
strcmp 比较字符串
参数:strcmp(str1,str2); str1=str2时,返回零;str1<str2时,返回负数;str1>str2时,返回正数
strcmp比较字符串大小的方法是:从左到右,依次对字母的ASCII码的大小进行比较,遇到不一样的字符或'\0'结束。
if (strcmp(tmp,"学号填空:\n") == 0){ //tmp为char数组
scanf("%s", &number);
}