欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C語(yǔ)言模擬實(shí)現(xiàn)通訊錄程序過(guò)程

 更新時(shí)間:2023年02月14日 16:28:49   作者:_麥麥_  
這篇文章主要介紹了C語(yǔ)言模擬實(shí)現(xiàn)通訊錄程序過(guò)程,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧

一、前言

在上一章的結(jié)構(gòu)體的學(xué)習(xí)中,相信小伙伴們或多或少都有所收獲,但是有的小伙伴可能會(huì)問(wèn),結(jié)構(gòu)體到底能用來(lái)做什么呢?今天,我們就借助結(jié)構(gòu)體和之前所學(xué)的知識(shí)來(lái)實(shí)現(xiàn)通訊錄。

二、正文

1.大體框架

相信在座的小伙伴們一定有人做過(guò)類似的小游戲或項(xiàng)目,編程的大忌就是將所有的代碼都放在同一個(gè)文件里,寫(xiě)的時(shí)候有多好爽快,后期對(duì)代碼進(jìn)行修改和維護(hù)的時(shí)候就有痛苦。這期通訊錄的實(shí)現(xiàn)我們大致分為三個(gè)模塊,一個(gè)用于測(cè)試通訊錄,即對(duì)各種函數(shù)的調(diào)用【text.c】;另一個(gè)用于通訊錄的實(shí)現(xiàn),其中放置著通訊錄功能的具體實(shí)現(xiàn)【contact.c】;最后一個(gè)就是函數(shù)的聲明了[contact.h].

2.界面顯示

就像之前的掃雷與三子棋游戲一樣,這個(gè)通訊錄的第一步一定是要讓使用者看到通訊錄的頁(yè)面,繼而在使用者選擇之后進(jìn)行下一步的操作。因而我們?nèi)耘f采取do while 循環(huán),先將頁(yè)面顯示,再根據(jù)使用者的輸入進(jìn)行相應(yīng)的操作。具體實(shí)現(xiàn)代碼如下:

void bubble_sort(int arr[], int sz)
{
	//趟數(shù)
	int i = 0;
	for (i = 0; i < sz - 1; i++)
	{
		//一趟冒泡排序的過(guò)程
		int j = 0;
		for (j = 0; j < sz - 1 - i; j++)
		{
			if (arr[j] > arr[j + 1])
			{
				int tmp = arr[j];
				arr[j] = arr[j + 1];
				arr[j + 1] = tmp;
            }
		}
	}
}

在以上代碼的邏輯下,使用者剛開(kāi)始就能夠看到我們?cè)O(shè)置好的界面,并進(jìn)行功能的輸入,如果輸入為0就退出通訊錄,通訊錄為功能相應(yīng)的數(shù)字就進(jìn)行相應(yīng)的功能【還未填寫(xiě)完整】,若為其他數(shù)字,則重新輸入。

3. 創(chuàng)建通訊錄

為了實(shí)現(xiàn)我們菜單中的各個(gè)功能,首先我們要有這些功能的受體——通訊錄,只有創(chuàng)建好通訊錄 ,才能進(jìn)行功能的操作。在生活中,我們手機(jī)上的通訊錄都存有聯(lián)系人的相關(guān)信息,例如姓名,年齡,性別,手機(jī)號(hào)碼等等 ,其次在后面的功能中我們還需要知道這個(gè)通訊錄中聯(lián)系人的數(shù)量是多少。顯然,我們需要一個(gè)自定義結(jié)構(gòu)變量來(lái)定義通訊錄,在這個(gè)結(jié)構(gòu)體中有兩個(gè)變量,一個(gè)是存放聯(lián)系人信息的變量,另一個(gè)是存放聯(lián)系人數(shù)量的變量。而存放聯(lián)系人的信息顯然需要一個(gè)數(shù)組,數(shù)組的大小即對(duì)應(yīng)著能存放多少聯(lián)系人,而數(shù)組中的元素就是聯(lián)系人的信息,這也無(wú)法用一個(gè)單一類型變量來(lái)定義,所以我們還需要額外定義一個(gè)結(jié)構(gòu)體變量來(lái)代表聯(lián)系人的各種信息。具體代碼如下:

//結(jié)構(gòu)體——聯(lián)系人的信息
struct peo
{
	char name[20];    //姓名
	char sex[10];     //性別
	int age;          //年齡  
	char addr[40];    //地址
	char tel[20];     //電話
};
//結(jié)構(gòu)體——通訊錄
typedef struct contact
{
	struct peo Peo[contact_num];	//通訊錄中聯(lián)系人的信息
	int sz;							//當(dāng)前存放聯(lián)系人的個(gè)數(shù)
}contact;

4.初始化通訊錄

在通訊錄的創(chuàng)建之后,就是對(duì)其的初始化了,為了方便,我們就都置成0就好了。

//Init_Contact——初始化通訊錄
 void Init_Contact(contact* pc)
{
	pc->sz = 0;
	memset(pc, 0, sizeof(pc->Peo));
}

5.增加聯(lián)系人

在通訊錄的創(chuàng)建和初始化完成之后,就是通訊錄功能的實(shí)現(xiàn)了。首先是“增加聯(lián)系人”這一功能。我們先是定義一個(gè)函數(shù),這個(gè)函數(shù)的參數(shù)就是我們的通訊錄,采用傳遞通訊錄地址的方式,返回值為空,因?yàn)槲覀冎皇菍?duì)通訊錄的內(nèi)容進(jìn)行改變,并不需要返回任何東西。然后是函數(shù)的具體實(shí)現(xiàn),我們要做的是在聯(lián)系人信息這一數(shù)組中添加一個(gè)聯(lián)系人,并在添加之后將通訊錄當(dāng)前存儲(chǔ)的聯(lián)系人數(shù)量+1。此外如果通訊錄已滿,我們需要提醒使用者無(wú)法再添加聯(lián)系人。具體代碼如下:

 //Add——增加聯(lián)系人
 void Add(contact* Contact)
 {
	 assert(Contact);
	 if (Contact->sz < contact_num)
	 {
		 printf("請(qǐng)輸入聯(lián)系人的姓名:>\n");
		 scanf("%s", (Contact->Peo[Contact->sz]).name);
		 printf("請(qǐng)輸入聯(lián)系人的性別:>\n");
		 scanf("%s", Contact->Peo[Contact->sz].sex);
		 printf("請(qǐng)輸入聯(lián)系人的年齡:>\n");
		 scanf("%d", &(Contact->Peo[Contact->sz].age));
		 printf("請(qǐng)輸入聯(lián)系人的地址:>\n");
		 scanf("%s", Contact->Peo[Contact->sz].addr);
		 printf("請(qǐng)輸入聯(lián)系人的電話:>\n");
		 scanf("%s", Contact->Peo[Contact->sz].tel);
		 Contact->sz++;
	 }
	 else
		 printf("通訊錄已滿無(wú)法添加\n");
 }

6.顯示聯(lián)系人

為了觀察我們?cè)趫?zhí)行增加聯(lián)系人這個(gè)函數(shù)是否成功,我們接下來(lái)進(jìn)行“顯示聯(lián)系人”這一功能的實(shí)現(xiàn)。同樣的先是定義顯示聯(lián)系人這一函數(shù),函數(shù)參數(shù)是通訊錄,采取傳址調(diào)用的方式,無(wú)需返回任何參數(shù)。函數(shù)的實(shí)現(xiàn)就是依據(jù)通訊錄中所存儲(chǔ)的聯(lián)系人數(shù)量,來(lái)調(diào)用存儲(chǔ)聯(lián)系人信息的數(shù)組,并將其顯示在屏幕上,為了數(shù)據(jù)顯示的整齊和美觀,筆者對(duì)打印的數(shù)據(jù)類型進(jìn)行了小小的改善,對(duì)數(shù)據(jù)所占空間進(jìn)行了設(shè)置,并將數(shù)據(jù)左對(duì)齊并在數(shù)據(jù)后輸出一個(gè)水平制表符。

 //Show——展示聯(lián)系人
  void Show( const contact* Contact)
 {
	 assert(Contact);
	 int pos = 0;    //聯(lián)系人對(duì)應(yīng)下標(biāo)
	 printf("%-20s\t%-10s\t%-4s\t%-40s\t%-20s\n","姓名", "性別", "年齡", "地址", "電話");
	 for (pos = 0; pos < Contact->sz; pos++)
	 {
		 printf("%-20s\t%-10s\t%-4d%\t%-40s\t%-20s\n", Contact->Peo[pos].name,
			 Contact->Peo[pos].sex,
			 Contact->Peo[pos].age,
			 Contact->Peo[pos].addr,
			 Contact->Peo[pos].tel);
	 }
  }

7. 刪除聯(lián)系人

首先是“刪除聯(lián)系人”這一函數(shù)的定義,參數(shù)為通訊錄這一結(jié)構(gòu)體,采取傳址調(diào)用的方式,返回參數(shù)無(wú)。繼而是函數(shù)具體的實(shí)現(xiàn),筆者是根據(jù)使用者所輸入的所要?jiǎng)h除聯(lián)系人的姓名來(lái)找到聯(lián)系人在數(shù)組中對(duì)應(yīng)的下標(biāo),從而進(jìn)行各項(xiàng)信息的刪除。這里有個(gè)小技巧,無(wú)論是刪除聯(lián)系人,修改聯(lián)系人,搜索聯(lián)系人都需要在根據(jù)輸入的姓名對(duì)聯(lián)系人進(jìn)行查找,因而我們可以將這個(gè)功能封裝成一個(gè)函數(shù),在使用這一功能的時(shí)候只需要調(diào)用就行了。具體代碼實(shí)現(xiàn)如下:

//Find_by_name——通過(guò)姓名,找到聯(lián)系人所對(duì)應(yīng)的下標(biāo)
  int Find_by_name( const contact* Contact, char *name)
  {
	 int i = 0;
	 for (i = 0; i < Contact->sz; i++)
	 {
		  if (strcmp(&(Contact->Peo[i].name),name)==0)
			  return i;
	 }
	 return -1;
  }
//Del——?jiǎng)h除聯(lián)系人
  void Del(contact* Contact)
  {
	  char name[20] = { 0 };
	  int i = 0;
	  printf("請(qǐng)輸入要?jiǎng)h除的聯(lián)系人:>");
	  scanf("%s", name);
	  int pos = Find_by_name(Contact, &name);
	  if (-1 == pos)
	  {
		  printf("該聯(lián)系人不存在\n");
		  return;
	  }
	  else
	  {
		  for (i = pos; i < Contact->sz-1; i++)
		  {
			  Contact->Peo[i] = Contact->Peo[i + 1];
		  }
		  Contact->sz--;
	  }
  }

8.查找聯(lián)系人

首先是對(duì)“查找聯(lián)系人”函數(shù)的定義,函數(shù)參數(shù)為通訊錄,采取傳址調(diào)用的方式,返回參數(shù)為0。然后是具體功能的實(shí)現(xiàn),先是根據(jù)輸入的姓名查找到對(duì)應(yīng)的下標(biāo),再將其顯示在屏幕上。具體代碼如下:

//Search——搜索聯(lián)系人
  void Search(const contact* Contact)
  {
	  char name[20] = {0};
	  printf("請(qǐng)輸入要尋找的聯(lián)系人:>");
	  scanf("%s", name);
	  int pos= Find_by_name(Contact, &name);
	  if (-1==pos)
	  {
		printf("該聯(lián)系人不存在\n");
		return;
	  }
	  else
	  {
		printf("%-10s\t%-6s\t%-4s\t%-40s\t%-20s\n", "姓名", "性別", "年齡", "地址", "電話");
		printf("%-10s\t%-6s\t%-4d%\t%-40s\t%-20s\n", Contact->Peo[pos].name,
			Contact->Peo[pos].sex,
			Contact->Peo[pos].age,
			Contact->Peo[pos].addr,
			Contact->Peo[pos].tel);
	  } 
  }

9.修改聯(lián)系人

首先是對(duì)“修改聯(lián)系人”函數(shù)的定義,函數(shù)參數(shù)為通訊錄,采取傳址調(diào)用的方式,返回參數(shù)為0。然后是具體功能的實(shí)現(xiàn),先是根據(jù)輸入的姓名查找到對(duì)應(yīng)的下標(biāo),再依據(jù)添加聯(lián)系人的代碼實(shí)現(xiàn)聯(lián)系人信息的修改。具體代碼如下:

//Modify——修改聯(lián)系人
  void Modify(contact* Contact)
  {
	  assert(Contact);
	char name[20] = { 0 };
	printf("請(qǐng)輸入要修改的聯(lián)系人\n");
	scanf("%s", name);
	int pos = Find_by_name(Contact, &name);
	if (-1 == pos)
	{
		printf("該聯(lián)系人不存在\n");
		return;
	}
	else
	{
		printf("請(qǐng)輸入聯(lián)系人的姓名:>\n");
		scanf("%s", (Contact->Peo[pos]).name);
		printf("請(qǐng)輸入聯(lián)系人的性別:>\n");
		scanf("%s", Contact->Peo[pos].sex);
		printf("請(qǐng)輸入聯(lián)系人的年齡:>\n");
		scanf("%d", &(Contact->Peo[pos].age));
		printf("請(qǐng)輸入聯(lián)系人的地址:>\n");
		scanf("%s", Contact->Peo[pos].addr);
		printf("請(qǐng)輸入聯(lián)系人的電話:>\n");
		scanf("%s", Contact->Peo[pos].tel);
	}
  }

10. 排序聯(lián)系人

對(duì)聯(lián)系人排序依據(jù)有很多,這里僅對(duì)聯(lián)系人的年齡進(jìn)行排序。采取冒泡排序的方式,冒泡排序的實(shí)現(xiàn)在前面的推文已經(jīng)介紹過(guò)了,有興趣的小伙伴可以康一康。http://www.dbjr.com.cn/article/275286.htm

//sort——按照年齡對(duì)聯(lián)系人進(jìn)行排序
  void sort(contact* Contact,contact* tmp)
  {
	  //執(zhí)行冒泡排序的趟數(shù)
	  int i = 0;
	  for (i = 0; i < Contact->sz - 1; i++)
	  {
		  //一趟冒泡排序中交換的次數(shù)
		  int j = 0;
		  for (j = 0; j < Contact->sz - 1-i; j++)
		  {
			  if (Contact->Peo[j].age > Contact->Peo[j + 1].age)
			  {
				  tmp->Peo[0] = Contact->Peo[j];
				  Contact->Peo[j] = Contact->Peo[j + 1];
				  Contact->Peo[j + 1] = tmp->Peo[0];
			  }
		  }
	  }
  }

到這里,整個(gè)通訊錄就寫(xiě)完了,整體的代碼如下:

//main.c
#include "contact.h"
//菜單
void menu()
{
	printf("******************************\n");
	printf("*****  1.Add    2.Del    *****\n");
	printf("*****  3.Search 4.Modify *****\n");
	printf("*****  5.Show   6.Sort   *****\n");
	printf("***    0.Exit            *****\n");
	printf("******************************\n");
}
int main()
{
	contact	Contact;	//創(chuàng)建通訊錄
	contact tmp;
	Init_Contact(&Contact);		//初始化通訊錄
	Init_Contact(&tmp);		
	int input = 0;
	do
	{
		menu();		//打印菜單
		printf("請(qǐng)選擇你所需的功能:");
		scanf("%d", &input);
		switch (input)
		{
		case 1:
			Add(&Contact);
			break;
		case 2:
			Del(&Contact);
			break;
		case 3:
			Search(&Contact);
			break;
		case 4:
			Modify(&Contact);
			break;
		case 5:
			Show(&Contact);
			break;
		case 6:
			sort(&Contact,&tmp);
			break;
		case 0:
			printf("退出通訊錄\n");
			break;
		default:
			printf("輸入錯(cuò)誤,請(qǐng)重新輸入\n");
		}
	}
	while (input);
	return 0;
}
//contact.h
#define _CRT_SECURE_NO_WARNINGS 1
#pragma once
#define contact_num 100
#include <stdio.h>
#include <string.h>
#include <assert.h>
//結(jié)構(gòu)體——聯(lián)系人的信息
struct peo
{
	char name[20];	//姓名
	char sex[10];	//性別
	int age;		//年齡
	char addr[40];	//地址
	char tel[20];	//電話
};
//結(jié)構(gòu)體——通訊錄
typedef struct contact
{
	struct peo Peo[contact_num];	//通訊錄中聯(lián)系人的信息
	int sz;							//當(dāng)前存放聯(lián)系人的個(gè)數(shù)
}contact;
void Init_Contact(contact* pc);	//初始化通訊錄
void Add(contact* Contact);		//添加聯(lián)系人
void Show(const contact* Contact);	//展示聯(lián)系人
void Search(const contact* Contact);	//搜索聯(lián)系人
void Del(contact* Contact);		//刪除聯(lián)系人
void Modify(contact* Contact);	//修改聯(lián)系人
void sort(contact* Contact,contact* tmp);	//排序聯(lián)系人——年齡
//contact.c
#include "contact.h"
//Init_Contact——初始化通訊錄
 void Init_Contact(contact* pc)
{
	pc->sz = 0;
	memset(pc, 0, sizeof(pc->Peo));
}
 //Add——增加聯(lián)系人
 void Add(contact* Contact)
 {
	 assert(Contact);
	 if (Contact->sz < contact_num)
	 {
		 printf("請(qǐng)輸入聯(lián)系人的姓名:>\n");
		 scanf("%s", (Contact->Peo[Contact->sz]).name);
		 printf("請(qǐng)輸入聯(lián)系人的性別:>\n");
		 scanf("%s", Contact->Peo[Contact->sz].sex);
		 printf("請(qǐng)輸入聯(lián)系人的年齡:>\n");
		 scanf("%d", &(Contact->Peo[Contact->sz].age));
		 printf("請(qǐng)輸入聯(lián)系人的地址:>\n");
		 scanf("%s", Contact->Peo[Contact->sz].addr);
		 printf("請(qǐng)輸入聯(lián)系人的電話:>\n");
		 scanf("%s", Contact->Peo[Contact->sz].tel);
		 Contact->sz++;
	 }
	 else
		 printf("通訊錄已滿無(wú)法添加\n");
 }
 //Show——展示聯(lián)系人
  void Show( const contact* Contact)
 {
	  assert(Contact);
	 int pos = 0;
	 printf("%-10s\t%-6s\t%-4s\t%-40s\t%-20s\n","姓名", "性別", "年齡", "地址", "電話");
	 for (pos = 0; pos < Contact->sz; pos++)
	 {
		 printf("%-10s\t%-6s\t%-4d%\t%-40s\t%-20s\n", Contact->Peo[pos].name,
			 Contact->Peo[pos].sex,
			 Contact->Peo[pos].age,
			 Contact->Peo[pos].addr,
			 Contact->Peo[pos].tel);
	 }
  }
  //Find_by_name——通過(guò)姓名,找到聯(lián)系人所對(duì)應(yīng)的下標(biāo)
  int Find_by_name( const contact* Contact, char *name)
  {
	 int i = 0;
	 for (i = 0; i < Contact->sz; i++)
	 {
		  if (strcmp(&(Contact->Peo[i].name),name)==0)
			  return i;
	 }
	 return -1;
  }
  //Search——搜索聯(lián)系人
  void Search(const contact* Contact)
  {
	  char name[20] = {0};
	  printf("請(qǐng)輸入要尋找的聯(lián)系人:>");
	  scanf("%s", name);
	  int pos= Find_by_name(Contact, &name);
	  if (-1==pos)
	  {
		printf("該聯(lián)系人不存在\n");
		return;
	  }
	  else
	  {
		printf("%-10s\t%-6s\t%-4s\t%-40s\t%-20s\n", "姓名", "性別", "年齡", "地址", "電話");
		printf("%-10s\t%-6s\t%-4d%\t%-40s\t%-20s\n", Contact->Peo[pos].name,
			Contact->Peo[pos].sex,
			Contact->Peo[pos].age,
			Contact->Peo[pos].addr,
			Contact->Peo[pos].tel);
	  } 
  }
  //Del——?jiǎng)h除聯(lián)系人
  void Del(contact* Contact)
  {
	  char name[20] = { 0 };
	  int i = 0;
	  printf("請(qǐng)輸入要?jiǎng)h除的聯(lián)系人:>");
	  scanf("%s", name);
	  int pos = Find_by_name(Contact, &name);
	  if (-1 == pos)
	  {
		  printf("該聯(lián)系人不存在\n");
		  return;
	  }
	  else
	  {
		  for (i = pos; i < Contact->sz-1; i++)
		  {
			  Contact->Peo[i] = Contact->Peo[i + 1];
		  }
		  Contact->sz--;
	  }
  }
  //Modify——修改聯(lián)系人
  void Modify(contact* Contact)
  {
	  assert(Contact);
	char name[20] = { 0 };
	printf("請(qǐng)輸入要修改的聯(lián)系人\n");
	scanf("%s", name);
	int pos = Find_by_name(Contact, &name);
	if (-1 == pos)
	{
		printf("該聯(lián)系人不存在\n");
		return;
	}
	else
	{
		printf("請(qǐng)輸入聯(lián)系人的姓名:>\n");
		scanf("%s", (Contact->Peo[pos]).name);
		printf("請(qǐng)輸入聯(lián)系人的性別:>\n");
		scanf("%s", Contact->Peo[pos].sex);
		printf("請(qǐng)輸入聯(lián)系人的年齡:>\n");
		scanf("%d", &(Contact->Peo[pos].age));
		printf("請(qǐng)輸入聯(lián)系人的地址:>\n");
		scanf("%s", Contact->Peo[pos].addr);
		printf("請(qǐng)輸入聯(lián)系人的電話:>\n");
		scanf("%s", Contact->Peo[pos].tel);
	}
  }
  //sort——按照年齡對(duì)聯(lián)系人進(jìn)行排序
  void sort(contact* Contact,contact* tmp)
  {
	  //執(zhí)行冒泡排序的趟數(shù)
	  int i = 0;
	  for (i = 0; i < Contact->sz - 1; i++)
	  {
		  //一趟冒泡排序中交換的次數(shù)
		  int j = 0;
		  for (j = 0; j < Contact->sz - 1-i; j++)
		  {
			  if (Contact->Peo[j].age > Contact->Peo[j + 1].age)
			  {
				  tmp->Peo[0] = Contact->Peo[j];
				  Contact->Peo[j] = Contact->Peo[j + 1];
				  Contact->Peo[j + 1] = tmp->Peo[0];
			  }
		  }
	  }
  }

到此這篇關(guān)于C語(yǔ)言模擬實(shí)現(xiàn)通訊錄程序過(guò)程的文章就介紹到這了,更多相關(guān)C語(yǔ)言通訊錄內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C++ 單例模式的詳解及實(shí)例

    C++ 單例模式的詳解及實(shí)例

    這篇文章主要介紹了C++ 單例模式的詳解及實(shí)例的相關(guān)資料,這里對(duì)單例中的懶漢模式和餓漢模式進(jìn)行實(shí)現(xiàn)和比較,需要的朋友可以參考下
    2017-07-07
  • C語(yǔ)言算法積累加tag的循環(huán)隊(duì)列

    C語(yǔ)言算法積累加tag的循環(huán)隊(duì)列

    這篇文章主要為大家介紹了C語(yǔ)言算法積累加tag的循環(huán)隊(duì)列的解題思路,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-06-06
  • C++實(shí)現(xiàn)鄰接表頂點(diǎn)的刪除

    C++實(shí)現(xiàn)鄰接表頂點(diǎn)的刪除

    這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)鄰接表頂點(diǎn)的刪除,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-04-04
  • C語(yǔ)言實(shí)現(xiàn)代碼雨效果

    C語(yǔ)言實(shí)現(xiàn)代碼雨效果

    這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言實(shí)現(xiàn)代碼雨效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • C語(yǔ)言中雙鏈表的基本操作

    C語(yǔ)言中雙鏈表的基本操作

    這篇文章主要介紹了C語(yǔ)言中雙鏈表的基本操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • c++ 獲取數(shù)字字符串的子串?dāng)?shù)值性能示例分析

    c++ 獲取數(shù)字字符串的子串?dāng)?shù)值性能示例分析

    這篇文章主要為大家介紹了c++ 獲取數(shù)字字符串的子串?dāng)?shù)值示例分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-11-11
  • C++回調(diào)函數(shù)實(shí)現(xiàn)計(jì)算器和qsort

    C++回調(diào)函數(shù)實(shí)現(xiàn)計(jì)算器和qsort

    這篇文章主要介紹了C++回調(diào)函數(shù)實(shí)現(xiàn)計(jì)算器和qsort,回調(diào)函數(shù)就是一個(gè)通過(guò)函數(shù)指針調(diào)用的函數(shù)。如果你把函數(shù)的指針(地址)作為參數(shù)傳遞給另一個(gè)函數(shù),當(dāng)這個(gè)指針被用來(lái)調(diào)用其所指向的函數(shù)時(shí),我們就說(shuō)這是回調(diào)函數(shù)
    2022-08-08
  • 深入分析Linux下如何對(duì)C語(yǔ)言進(jìn)行編程

    深入分析Linux下如何對(duì)C語(yǔ)言進(jìn)行編程

    本篇文章介紹了,如何在Linux下對(duì)C語(yǔ)言進(jìn)行編程的詳細(xì)概述。需要的朋友參考下
    2013-05-05
  • C++類型兼容規(guī)則詳情

    C++類型兼容規(guī)則詳情

    這篇文章主要介紹了C++類型兼容規(guī)則詳情,共有繼承時(shí),任何需要父類對(duì)象的地方,都能使用子類對(duì)象“替代”,這就是類型兼容規(guī)則,下面一起來(lái)了解文章相關(guān)內(nèi)容吧
    2022-03-03
  • C++從文本文件讀取數(shù)據(jù)到vector中的方法

    C++從文本文件讀取數(shù)據(jù)到vector中的方法

    這篇文章主要給大家介紹了利用C++如何從文本文件讀取數(shù)據(jù)到vector中,文章通過(guò)實(shí)例給出示例代碼,相信會(huì)對(duì)大家的理解和學(xué)習(xí)很有幫助,有需要的朋友們下面來(lái)一起看看吧。
    2016-10-10

最新評(píng)論