为什么使用以下语句,会提示不能将char*类型的值分配给long类型实体:fgets(fname, MAX_LEN, stdin); // 读取字符串 char *pos; if ((pos = strchr(fname, '\n')) != NULL) // 查找'\n'字符 *pos = '\0'; // 将'\n'替换为'\0'
时间: 2024-03-14 08:49:24 浏览: 208
标准I/O库函数:fgets与gets比较分析
fgets函数会读取一个字符串并存储在fname数组中,fname数组的类型是char*。而strchr函数用于在字符串中查找字符,返回的是一个指向字符的指针,也是char*类型。在代码中,*pos = '\0'; 将'\n'字符替换为'\0'字符,这里的'\0'是字符型的,而不是整型的。因此,不能将char*类型的值分配给long类型实体,编译器会提示类型不匹配的错误。
阅读全文