我有一个字符数组:char Input[200];
现在输入的字符串是"abc.txt"。
我有一个方法,严格需要一个const char *,那么我该如何将我的输入数组转换为const char *呢?
我尝试进行强制类型转换并传递它,但通过使用GDB,我感觉由于input中剩余的192个空位填充了垃圾(或为空),所以该函数不接受它。当我向该函数传递字符串字面量"a.txt"时,它可以正常工作。因此,此时我想从input数组中提取填充的元素并将其转换为const char *。
我正在从用户处获取文件名作为输入,因此我使用了一个字符数组来存储输入。
int main()
{
char *name;
char input[1024];
strcpy(input, argv[1]);
name = input;
sys_open(input, "O_RDWR", 00700);
}
open
的第二个参数(或者说sys_open
(你不应该直接调用它))不是一个字符串。 - Some programmer dudefgets
,那么它会在字符串中保留换行符。使用input[strlen(input) - 1] = '\0';
来删除最后一个字符(即换行符)。 - Some programmer dude