如何在c中使用substring函数?

mad*_*012 5 c substring

我有一个字符串,我希望它的子字符串从第五个位置到最后一个位置.我应该使用哪种功能?

Eri*_* W. 6

如果您不将原始字符串用于其他任何内容,则可以直接使用&s[4].如果您需要副本,请执行

char new_str[STR_SIZE + 1] = {0};
strncpy(new_str, &s[4], STR_SIZE);
Run Code Online (Sandbox Code Playgroud)

  • `strncpy()`,尽管它的名字,但设计用于未终止的字符数组.你的代码可能会留下`new_str`而没有'\ 0'.添加`new_str [STR_SIZE] = 0`或确保你有足够的空间并使用`strcpy()`. (2认同)

小智 5

您可以使用头文件中的memcpy()功能string.h.

memcpy()在内存块之间复制数据字节,有时称为缓冲区.此函数不关心被复制的数据类型 - 它只是进行精确的逐字节复制.功能原型是

void *memcpy(void *dest, void *src, size_t count);
Run Code Online (Sandbox Code Playgroud)

参数dest和src分别指向目标和源内存块.count指定要复制的字节数.返回值为dest.

如果两个内存块重叠,则该函数可能无法正常运行 - src中的某些数据可能会在复制之前被覆盖.使用下面memmove()讨论的函数来处理重叠的内存块.memcpy()将在下面的程序中演示.

您还可以在此处找到这些功能的示例:http: //www.java-samples.com/showtutorial.php?tutorials = 591