我是一个初学者,我需要知道如何将一个大字符串(如一个充满由指针指向的字符串的页面)放入缓冲区。例如,如果pointer p->helpPage
我想将帮助页面的全部内容放入char buffer[500]
请帮忙。
你想要strncpy
。
const char *src = "Some string";
const int BUF_SIZE = 64;
char buf[BUF_SIZE];
strncpy(buf, src, sizeof buf);
buf[BUF_SIZE-1] = '\0';
strncpy
, 不像strcpy
, 需要一个额外的参数; 提供的缓冲区的大小。这有助于防止缓冲区溢出。
一个页面可以被认为是一个指针数组,其中每个指针指向每一行或句子。因此,如果您想复制特定的行或句子,则可以使用 strncpy(buff, p->helpPage, n); 如果您知道每行的大小,或者您可以获得一个字符并将该字符复制到另一个缓冲区,直到您得到一个换行符或一个点。
您可以使用strcpy()
将指针复制p->helpPage
到缓冲区buffer
:
strcpy(buffer, p->helpPage);