Time of Update: 2017-01-18
C語言的函數庫是多組經過驗證的常用函數的集合,編寫C語言程式時使用庫函數,既可以提高程式運行效率,又可以提高編程品質,使用方法如#include
Time of Update: 2017-01-18
1. 左值與右值: C++對於左值和右值沒有標準定義,但是有一個被廣泛認同的說法:可以取地址的,有名字的,非臨時的就是左值;不能取地址的,沒有名字的,臨時的就是右值. 可見立即數,函數返回的值等都是右值;而非匿名對象(包括變數),函數返回的引用,const對象等都是左值.
Time of Update: 2017-01-18
前言定義沒有初始化式的變數時,系統有時候會幫我們初始設定變數。系統如何初始化取決於變數的類型以及變數定義的位置。 內建類型變數是否自動初始化取決於變數定義的位置。函數體外定義的變數初始成0;函數體內定義的變數不進行自動初始化。除了用作賦值操作的左運算元,其他任何使用未初始設定變數的行為都是未定義的,不要依賴未定義行為。以int類型為例,一段簡單的測試代碼:#include <iostream>using namespace std;int a;int main(){ int b;
Time of Update: 2017-01-18
選擇排序是排序演算法的一種,這裡以從小到大排序為例進行講解。基本思想及舉例說明選擇排序(從小到大)的基本思想是,首先,選出最小的數,放在第一個位置;然後,選出第二小的數,放在第二個位置;以此類推,直到所有的數從小到大排序。在實現上,我們通常是先確定第i小的數所在的位置,然後,將其與第i個數進行交換。下面,以對 3 2 4 1 進行選擇排序說明排序過程,使用min_index 記錄當前最小的數所在的位置。第1輪 排序過程
Time of Update: 2017-01-18
fscanf() 和 fprintf() 函數與前面使用的 scanf() 和 printf() 功能相似,都是格式化讀寫函數,兩者的區別在於 fscanf() 和 fprintf() 的讀寫對象不是鍵盤和顯示器,而是磁碟檔案。這兩個函數的原型為:int fscanf ( FILE *fp, char * format, ... );int fprintf ( FILE *fp, char * format, ... );fp 為檔案指標,format 為格式控制字元串,...
Time of Update: 2017-01-18
fgets() 有局限性,每次最多隻能從檔案中讀取一行內容,因為 fgets 遇到分行符號就結束讀取。如果希望讀取多行內容,需要使用 fread 函數;相應地寫入函數為 fwrite。fread() 函數用來從指定檔案中讀取塊資料。所謂塊資料,也就是若干個位元組的資料,可以是一個字元,可以是一個字串,可以是多行資料,並沒有什麼限制。fread() 的原型為:size_t fread ( void *ptr, size_t size, size_t count, FILE *fp
Time of Update: 2017-01-18
fgetc() 和 fputc() 函數每次只能讀寫一個字元,速度較慢;實際開發中往往是每次讀寫一個字串或者一個資料區塊,這樣能明顯提高效率。讀字串函數fgetsfgets() 函數用來從指定的檔案中讀取一個字串,並儲存到字元數組中,它的原型為:char *fgets ( char *str, int n, FILE *fp );str 為字元數組,n 為要讀取的字元數目,fp 為檔案指標。傳回值:讀取成功時返回字元數組首地址,也即 str;讀取失敗時返回
Time of Update: 2017-01-18
c++高精度演算法,對於新手來說還是一大挑戰,只要克服它,你就開啟了編程的新篇章,演算法。我發的這個代碼並不是很好,佔用記憶體很多而且已耗用時間很長(不超過1秒),但是很好理解,很適合新手高精演算法的本質就是把數組編程字串,然後將字串像豎式一樣加起來:a+b高精度演算法#include <iostream>#include <cmath>#include <cstring> using namespace std;int main(){ char a[100
Time of Update: 2017-01-18
看《編程之美》第二節的時候,它是定義的一個整型,然後取位。但是他的那個或運算子號好像寫錯了,寫成了異或符號“^”,應該是“|”。我就突然對二進位的輸出感興趣了。想知道怎樣輸出二進位。我們知道C++輸出十六進位是cout〈〈hex〈〈 a;而八進位是cout〈〈 ocx〈〈 a;二進位則沒有預設的輸出格式,需要自己寫函數進行轉換,於是上網搜尋了一下。網上思路真是廣泛啊。下面列出一些方法。 #include 〈iostream〉 #include 〈list〉 #include
Time of Update: 2017-01-18
概述排序有內部排序和外部排序,內部排序是資料記錄在記憶體中進行排序,而外部排序是因排序的資料很大,一次不能容納全部的排序記錄,在排序過程中需要訪問外存。我們這裡說說八大排序就是內部排序。當n較大,則應採用時間複雜度為O(nlog2n)的排序方法:快速排序、堆排序或歸併排序。快速排序:是目前基於比較的內部排序中被認為是最好的方法,當待排序的關鍵字是隨機分布時,快速排序的平均時間最短;1. 插入排序—直接插入排序(Straight Insertion
Time of Update: 2017-01-18
需求:1.設計一個詞頻統計軟體,統計給定英文文章的單詞頻率。2.文章中包含的標點不計入統計。3.將統計結果以從大到小的排序方式輸出。設計:1.因為是跨專業0.0···並不會c++和java,只能用僅學過的C語言進行編寫,還是挺費勁的。2.定義一個包含單詞和頻率兩個成員的結構體來統計詞頻(進行了動態分配記憶體,可以處理較大文本)。3.使用fopen函數讀取指定的文檔。4.使用fgetc函數擷取字元,再根據取得的字元是否是字母進行不同的處理。5.採用快速排序法對統計結果進行排序。5.將整個統計結果迴
Time of Update: 2017-01-18
檔案中存貯的內容如下所示:11 1122 0 1122 * * 0 0 22 222 0 222 * * 0 0 33 333 0 333 * * 0 0 通過使用下面的幾個函數,fopen,fprintf,fscanf,fseek,ftell 。具體的函數函數原型如下所示:FILE*fopen(const
Time of Update: 2017-01-18
C/C++ string庫(string.h)提供了幾個字串尋找函數,如下:memchr 在指定記憶體裡定位給定字元strchr 在指定字串裡定位給定字元strcspn 返回在字串str1裡找到字串str2裡的任意一個字元之前已尋找的字元數量strrchr 在字串裡定位給定字元最後一次出現的位置strpbrk 在字串str1裡定位字串str2裡任意一個首次出現的字元strspn 返回字串str1從開始字元到第一個不在str2中的字元個數strstr
Time of Update: 2017-01-18
第一部分 C++記憶體配置一。關於記憶體1、記憶體配置方式記憶體配置方式有三種:(1)從靜態儲存地區分配。記憶體在程式編譯的時候就已經分配好,這塊記憶體在程式的整個運行期間都存在例如全域變數,static變數。(2)在棧上建立。在執行函數時,函數內局部變數的儲存單元都可以在棧上建立,函數執行結束時這些存儲單元自動被釋放。棧記憶體配置運算內建於處理器的指令集中,效率很高,但是分配的記憶體容量有限。(3)
Time of Update: 2017-01-18
c++中的string類可以實現字串對象的一系列操作,如下圖就是從cplusplus上截取的string的一部分功能:接下來我就簡單類比幾個函數實現 首先,我們要給出完整的string類,包括建構函式,解構函式,私人成員char* str 並且在類內聲明要實現的函數(本文我只實現了operator=,operator[
Time of Update: 2017-01-18
一個C++類中的變數如果如下關鍵字作為修飾符.1. public: 程式的任何地方都可以訪問.2 protected: 只有類本身及其衍生類別和其友元函數,友元類可以訪問.3 private: 只有類本身及其友元函數,友元類可以訪問.4 friend: 用於定義友元函數友元類. 在類裡聲明的一個普通函數,在前面加上friend修飾符,這個函數就可以訪問該類的一切成員,包括private成員.下面在看下c++ public private protected關鍵字1、當在類的內部使用這三個關鍵字,
Time of Update: 2017-01-18
逸出字元參考: \a:蜂鳴,響鈴\b:回退:向後退一格\f:換頁\n:換行,游標到下行行首\r:斷行符號,游標到本行行首\t:水平製表\v:垂直製表\\:反斜線\':單引號\":雙引號\?:問號\ddd:三位八進位\xhh:二位十六進位\0:Null 字元(NULL),什麼都不做註: 1,\v垂直製表和\f換頁符對螢幕沒有任何影響,但會影響印表機執行響應操作。2,\n其實應該叫斷行符號換行。換行只是換一行,不改變游標的橫座標;斷行符號只是回到行首,不改變游標的縱座標。3,\t
Time of Update: 2017-01-18
c語言中的逸出字元:\a 響鈴符\b 退格\f 換頁符\n 分行符號\r 斷行符號符(回到該行的首位置)\v 縱向定位字元\\ 反斜線\? 問號(?經vs10測試可以直接列印)\"(\') 雙引號(單引號)\ooo 八位元(ooo表示一個用8進位數表示出來的對應ANSII代碼對應出字元,用此方法可以表示出所有ASCII字元。不過測試發現打不出%號,存疑!)\xhh
Time of Update: 2017-01-18
下面介紹8種基本的常用的字串處理函數,在數值數組中也常常用到(部分函數)。所有的C語言編譯系統中一般都提供這些函數。1、puts函數——輸出字串的函數 一般的形式為puts(字串組)作用:將一個字串輸出到終端。如,char一個string,並賦予初值。調用puts(string);進行字串的輸出。2、gets函數——輸入字串的函數一般的形式:gets(字元數組)作用:從終端輸入一個字串到字元數組,並且得到一個函數值成為字元數組的起始地址。gets(str);鍵盤輸入,,,,你懂得。注意
Time of Update: 2017-01-18
第一種,最常用的是建立一個中間變數來迴圈交換它們的值:T a = ...;T b = ...;.T tmp = a; a = b; a = tmp;我們稱這種策略p99_swap1。在這裡,編譯器必須嚴格實現三個任務的順序,否則,由此程式產生的結果將是不正確的。第二種,叫它p99_swap2,試圖做類似的事情,但放鬆一些順序約束:T a = ...;T b = ...;.T tmpa = a; T tmpb = b;a = tmpb; b =