如何重新排列 char* 的开头和结尾(索引方面)而不实际更改它?
我有一个 char* string1 = "HELLOPEOPLE",还有另一个 char* 部分 = string+5。所以部分指向“PEOPLE”在内存中的位置。我的问题是如何在不更改 string1 的情况下使部分成为“PEOPLEHELLO”。
我问这个问题是因为我正在研究 Burrows Wheeler 变换的循环排列。例如,从单词 PLAY(示例单词)中获取这样的矩阵。
PLAY
YPLA
AYPL
LAYP
有什么方法可以在不改变 PLAY 的情况下获得 YPLA,只需使用索引(引用内存中的点) ?
I have a char* string1 = "HELLOPEOPLE", and I have another char* portion = string+5. So portion points to the location in memory of "PEOPLE". My question is how can I get portion to be "PEOPLEHELLO" without changing string1.
I am asking this because I working on the cyclic permutations for the Burrows Wheeler Transform. For example is to get a matrix like this from the word PLAY (Example word).
PLAY
YPLA
AYPL
LAYP
Is there any way I can get YPLA without changing the the PLAY, just using indexes (references to points in memory)
?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
你不能。
但是,您可以打印
portion
和string1
的前 5 个字符,或者打印
portion
和string1
的部分在部分
之前You cannot.
You can, however, print
portion
and the first 5 characters ofstring1
Or print
portion
and the part ofstring1
beforeportion
您不能,除非您创建一个新字符串并按所需顺序复制其中的部分。
You can't, unless you create a new string and copy in it the portions in the desired order.
您可以使用 C 标准库中的
strncpy
和strncat
:You can use
strncpy
andstrncat
, from the C standard library: