program7_13.c
来自「C语言入门经典一书的所有代码。书上面的所有代码均在此。希望大家喜欢」· C语言 代码 · 共 44 行
C
44 行
/* Program 7.13 Generalizing string input */
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
const size_t BUFFER_LEN = 128; /* Length of input buffer */
const size_t NUM_P = 100; /* maximum number of strings */
int main(void)
{
char buffer[BUFFER_LEN]; /* Input buffer */
char *pS[NUM_P] = { NULL }; /* Array of string pointers */
char *pbuffer = buffer; /* Pointer to buffer */
int i = 0; /* Loop counter */
printf("\nYou can enter up to %u messages each up to %u characters.",
NUM_P, BUFFER_LEN-1);
for(i = 0 ; i<NUM_P ; i++)
{
pbuffer = buffer ; /* Set pointer to beginning of buffer */
printf("\nEnter %s message, or press Enter to end\n",
i>0? "another" : "a");
/* Read a string of up to BUFFER_LEN characters */
while((pbuffer - buffer < BUFFER_LEN-1) &&
((*pbuffer++ = getchar()) != '\n'));
/* check for empty line indicating end of input */
if((pbuffer - buffer) < 2)
break;
/* Check for string too long */
if((pbuffer - buffer) == BUFFER_LEN && *(pbuffer-1)!= '\n')
{
printf("String too long - maximum %d characters allowed.",
BUFFER_LEN);
i--;
continue;
}
*(pbuffer - 1) = '\0'; /* Add terminator */
pS[i] = (char*)malloc(pbuffer-buffer); /* Get memory for string */
if(pS[i] == NULL) /* Check we actually got some
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?