见者有份,一起来理解一下这个C程序

direren direren 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
#include <string.h>
#include <stdio.h>
#include <sys/types.h>

#ifndef PORT
#define PORT 3000
#endif

u_short PORT_NUMBER = PORT;

int run_help(char *res, char *buffer, int *i_ptr);

#define BUFFER_SIZE 80
#define RES_SIZE 300
#define EXIT_CMD "exit"

void run() {

char buffer[BUFFER_SIZE];

int i = 0;
char res[RES_SIZE];

while (i < RES_SIZE) {
if (!run_help(res, buffer, &i)) break;
}

res[i+1] = 0;
printf(res);
printf("\n\n");

}

int run_help(char *res, char *buffer, int *i_ptr) {

fgets(buffer, BUFFER_SIZE, stdin);

// code to get rid of newlines and other stuff at end of string
int wordlen = strlen(buffer);
if (buffer[wordlen - 2] == 13) {
buffer[wordlen - 2] = 0;
wordlen -= 2;
}
else if (buffer[wordlen - 1] == 10) {
buffer[wordlen - 1] = 0;
wordlen -= 1;
}

if (strcmp(buffer, EXIT_CMD) == 0) return 0;

int j = 0;
while (j < wordlen) {
res[*i_ptr] = buffer[j];
(*i_ptr)++;
j++;
}
return 1;
}


都来看看呀
...全文
评论 41
收藏 已收藏
分享
返回顶部
direren
C语言 70,040 成员 243,237 内容