如何将字符串的一部分复制到另一个变量?

时间:2016-12-06 03:34:08

标签: c

您好我想弄清楚如何只复制从文本文件中读取的部分行。我想将一行名为fileLine的行复制到名为line的变量中。问题是,我只想从fileLine中的索引10开始复制,但是memcpy不喜欢这样。我怎样才能改变这个让memcpy开心?

int stringLength = 0;
stringLength = strlen(fileLine);
memcpy(line, fileLine[10], stringLength); //this is where things go wrong.

2 个答案:

答案 0 :(得分:3)

您已将char类型传递给预期为const void*的内容。如果您将char*传递给它,那就没问题了。您可以&fileLine[10]fileLine + 10

执行此操作

由于您的偏移量为10,因此您还需要确保复制少10个字符:

memcpy(line, &fileLine[10], stringLength-10);

虽然您可能也想复制字符串终结符...

memcpy(line, &fileLine[10], stringLength-9);

呸!

相反,您可以使用strcpy

strcpy(line, fileLine + 10);

在所有情况下,请确保line是一个数组或指向实际分配给您的进程的内存的指针。

答案 1 :(得分:0)

您可以使用getline函数来获取字符串的一部分。但首先,您必须使用seekg函数将读指针移动到您想要读取的位置。 seekg(ios flag,bytes); cin.getline(来源,字符数,结束字符);

相关问题