页码 |
|
200 | 打印输出身份证结构中身份证号码和姓名 |
200 | 建立一个动态分配的POINT结构 |
205 | 词频统计 |
返回 总目录
例:打印输出身份证结构中身份证号码和姓名
void prtIDCard0(IDCARD ic) {
printf("%s\n", ic.id_number);
printf("%s\n\n", ic.name);
}
或者定义下面的函数,调用时应该传身份证记录的地址:
void prtIDCard(IDCARD *icp) {
printf("%s\n", icp->id_number);
printf("%s\n\n", icp->name);
}
POINT *mkpoint2(double x, double y) {
POINT *p;
p = (POINT *)malloc(sizeof(POINT));
p->x = x;
p->y = y;
return p;
}
#include <string.h> /* 程序中需要做字符串复制和比较 */
#include <stdlib.h> /* 程序中要做动态存储分配 */
#define MAXLEN 20
typedef struct node NODE, *LINK; /* 类型定义 */
struct node {
char word[MAXLEN];
int count;
LINK next;
};
int getword(char w[], int limit); /* 有关函数的原型说明 */
LINK addword(LINK l, char w[]);
void printwords(LINK l);
LINK list = NULL; /* 全局变量,作为表的头指针 */
char word[MAXLEN]; /* 读入用的临时字符数组 */
int main (void) {
while (getword(word, MAXLEN) != 0)
if (isalpha(word[0]))
list = addword(list, word);
printwords(list);
return 0;
}
void printwords(LINK p) {
for ( ; p != NULL; p = p->next)
printf("%d %s\n", p->count,
p->word);
}
LINK mknode(char w[]) {
LINK p = (LINK)malloc(sizeof(NODE));
if (p != NULL) {
strncpy(p->word, w, MAXLEN);
p->count = 1;
p->next = NULL;
}
return p;
}
LINK addword(LINK p, char w[]) {
if (p != NULL) {
if(strcmp(p->word, w) ==
0)
p->count++;
else
p->next = addword(p->next, w);
return p;
}
else
return mknode(w);
}