经典C语言程序例子

Python020

经典C语言程序例子,第1张

题目01:在一个已知的字符串中查找最长单词,假定字符串中只含字母和空格,空格用来分隔不同的单词。

直接编译,程序执行结果如下图所示:

题目02:编写一个int string_len(char *s),返回字符串s的字符长度(不包括\0)。

直接编译,程序执行结果如下图所示:

扩展资料:

C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。

尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。

#include<stdio.h>

#include<stdlib.h>

#define MAX 100

struct addr{

char name[30]

char street[40]

char city[20]

char state[3]

unsigned long int zip

}add_list[MAX]

void init_list(void),enter(void)

void delete(void),list(void)

void load(void),save(void)

int menu_select(void),find_free(void)

int main(void)

{

char choice

init_list()/*initialize the structure array*/

for(){

choice=menu_select()

switch(choice){

case 1:enter()

break

case 2:delete()

break

case 3:list()

break

case 4:save()

break

case 5:load()

break

case 6:exit(0)

}

}

return 0

}

/*Initialize the list*/

void init_list(void)

{

register int t

for(t=0t<MAX++t)

add_list[t].name[0]='0'

}

/*Get a menu selection*/

int menu_select(void)

{

char s[80]

int c

printf("1.Enter a name\n")

printf("2.Delete a name\n")

printf("3.List the file\n")

printf("4.Save the file\n")

printf("5.Load the file\n")

printf("6.Quit\n")

do{

printf("\nEnter your choice:")

gets(s)

c=atoi(s)

}while(c<0||c>6)

return c

}

/*Input addresses into the list*/

void enter(void)

{

int slot

char s[80]

slot=find_free()

if(slot==-1){

printf("\nList Full")

return

}

printf("Enter name:")

gets(add_list[slot].name)

printf("Enter street:")

gets(add_list[slot].street)

printf("Enter city:")

gets(add_list[slot].city)

printf("Enter state:")

gets(add_list[slot].state)

printf("Enter zip:")

gets(s)

add_list[slot].zip=strtoul(s,'\0',10)

}

/*Find an unused structure*/

int find_free(void)

{

register int t

for(t=0add_list[t].name[0]&&t<MAX++t)

if(t==MAX)

return -1/*no slots free*/

return t

}

/*Delete an address*/

void delete(void)

{

register int slot

char s[80]

printf("enter record # :")

gets(s)

slot=atoi(s)

if(slot>=0&&slot<MAX)

add_list[slot].name[0]='\0'

}

/*Display the list on the screen*/

void list(void)

{

register int t

for(t=0t<MAX++t){

if(add_list[t].name[0]){

printf("%s\n",add_list[t].name)

printf("%s\n",add_list[t].street)

printf("%s\n",add_list[t].city)

printf("%s\n",add_list[t].state)

printf("%s\n",add_list[t].zip)

}

}

printf("\n\n")

}

/*Save the list*/

void save(void)

{

FILE *fp

register int i

if((fp=fopen("maillist","wb"))==NULL)

printf("Cannot open file\n")

return

for(i=0i<MAXi++)

if(*add_list[i].name)

if(fwrite(&add_list[i],sizeof(struct addr),1,fp)!=1)

printf("File write error\n")

fclose(fp)

}

/*Load the file*/

void load(void)

{

FILE *fp

register int i

if((fp=fopen("maillist","rb"))==NULL){

printf("Cannot open file\n")

return

}

init_list()

for(i=0i<MAXi++)

if(fread(&add_list[i],sizeof(struct addr),1,fp)!=1){

if(feof(fp))break

printf("File read error\n")

}

fclose(fp)

}