在C中,並沒有字串這個資料類型,而是使用字元數組來儲存字串。C字串實際上就是一個以null('\0')字元結尾的字元數組,null字元表示字串的結束。需要注意的是:只有以null字元結尾的字元數組才是C字串,否則只是一般的C字元數組。C字串定義時可以利用"="號進行初始化,但是以後不能利用"="對C字串進行賦值。對C字串的操作需要通過"string"檔案中定義的字串處理函數。例如://字串的初始化char a[11] = "huanying";//字串的賦值strcpy(a,"nihao")//
代碼如下所示:複製代碼 代碼如下:#include "stdafx.h"#include <string>#include <iostream>using namespace std;char* strcpy(char *src_str, char *dest_str){ char* dest = dest_str; if ((src_str == NULL)||(dest_str == NULL))
雙向迴圈鏈表,即每個節點都擁有一前一後兩個指標且頭尾互鏈的鏈表。各種鏈表的簡單區別如下:單向鏈表:基本鏈表;單向迴圈鏈表:不同於單向鏈表以 NULL
一、命名的兩個基本原則1、含義清晰,不易混淆;2、不和其它模組、系統API的命名空間相衝突。二、命名通則1、在所有命名中,都應使用標準的英文單詞或縮寫;不得使用拼音或拼音縮寫,除非該名字描述的是文特有的內容(如半形、全形、聲母、韻母等);除非必要,不要用數字或較奇怪的字元來定義標識符。2、所有命名都應遵循達意原則,即名稱應含義清晰、明確。3、所有命名都不易過長,應控制在規定的最大長度以內。4、所有命名都應盡量使用全稱。5、命名中若使用特殊約定或縮寫,則要有注釋說明。
複製代碼 代碼如下:#include <stdio.h>#include <stdlib.h>#include <string.h>#include <assert.h>//memcpy:按位元組複製原型:extern void* memcpy(void *dest,void *src,unsigned int count)//功能:由src所指記憶體地區複製count個位元組到dest所指的記憶體地區;//同strcpyvoid *memcpy_
printf文法: #include <stdio.h>int printf( const char *format, ... );printf()函數根據format(格式)給出的格式列印輸出到STDOUT(標準輸出)和其它參數中。傳回值是輸出的字元數量。sprintf文法: #include <stdio.h>int sprintf( char *buffer, const char *format, ...
名稱:sscanf() - 從一個字串中讀進與指定格式相符的資料.複製代碼 代碼如下:函數原型:Int sscanf( string str, string fmt, mixed var1, mixed var2 ... );int scanf( const char *format [,argument]... );說明:sscanf與scanf類似,都是用於輸入的,只是後者以螢幕(stdin)為輸入源,前者以固定字串為輸入源。其中的format可以是一個或多個 {%[*]
研究了一下,總算勉強能夠融會貫通了c寫成OOP還蠻有樂趣的編譯環境:Xcode3.2.3+gcc4.2複製代碼 代碼如下:#ifndef OBJECT_H#define OBJECT_Htypedef void (*Execute)(struct Object *a_This);typedef struct Object* (*Allocate)();typedef struct _Object_Vtable{ char *name; Execute exe;}Object_
代碼如下所示:複製代碼 代碼如下:#include <iostream>template <typename T>class double_linked{ struct node { T data; node* prev; &
退出線程可以有四種方法:1.線程函數的return返回(最好這樣):其中用線程函數的return返回, 而終止線程是最安全的, 線上程函數return返回後, 會清理函數內申請的類對象, 即調用這些對象的解構函式. 然後會自動調用 _endthreadex()函數來清理 _beginthreadex(...)函數申請的資源(主要是建立的tiddata對象).2.調用 _endthreadex()函數 或 ExitThread()函數(最好不要):如果使用這兩種方法退出線程,
想要終止線程的運行,可以使用以下方法: 1、線程函數返回(最好使用該方法)。 2、通過調用ExitThread函數,線程將自行撤消(最好不使用該方法)。 3、同一個進程或另一個進程中的線程調用TerminateThread函數(應避免使用該方法)。 4、ExitProcess和TerminateProcess函數也可以用來終止線程的運行(應避免使用該方法)。下面將詳細介紹終止線程啟動並執行方法:1-4,並說明線程終止運行時會出現何種情況:5。 1、線程函數返回 始終都應該將線程設計成這樣的形式,
(1)編譯單元(模組)在VC或VS上編寫完代碼,點擊編譯按鈕準備產生exe檔案時,編譯器做了兩步工作:第一步,將每個.cpp(.c)和相應的.h檔案編譯成obj檔案;第二步,將工程中所有的obj檔案進行LINK,產生最終.exe檔案。那麼,錯誤可能在兩個地方產生:一個,編譯時間的錯誤,這個主要是語法錯誤;一個,連結時的錯誤,主要是重複定義變數等。編譯單元指在編譯階段產生的每個obj檔案。一個obj檔案就是一個編譯單元。一個.cpp(.c)和它相應的.h檔案共同組成了一個編譯單元。一個工程由很多編
複製代碼 代碼如下: #ifndef USE_H_ #define USE_H_ #include <iostream> #include <windows.h> #include <string>
C++格式化輸出浮點數複製代碼 代碼如下:#include <iostream>using std::cout;using std::endl;using std::fixed;using std::scientific;int main(){ double x = 0.001234567; double y = 1.946e9; cout << "Displayed in default
代碼如下所示:複製代碼 代碼如下: #include <stdlib.h> #include <string> #include <windows.h> #include <stdio.h> #include
一般情況下,在函數調用時形參從實參那裡取得值,因此實參的個數應與形參相同。有時多次調用同一函數時用同樣的實參,C++提供簡單的處理辦法,給形參一個預設值,這樣形參就不必一定要從實參取值了。如有一函式宣告float area(float r=6.5);指定r的預設值為6.5,如果在調用此函數時,確認r的值為6.5,則可以不必給出實參的值,如area( ); //相當於area(6.5);如果不想使形參取此預設值,則通過實參另行給出。如area(7.5);
問題:在下面的 template declarations(模板聲明)中 class 和 typename 有什麼不同? 複製代碼 代碼如下:template<class T> class Widget; // uses "class"template<typename T> class Widget; // uses "typename"答案:沒什麼不同。在聲明一個 template type parameter(模板型別參數)的時候,class 和 typename
學習c++如果不瞭解記憶體配置是一件非常可悲的事情。而且,可以這樣講,一個C++程式員無法掌握記憶體、無法瞭解記憶體,是不能夠成為一個合格的C++程式員的。一、記憶體基本構成可程式化記憶體在基本上分為這樣的幾大部分:靜態儲存區、堆區和棧區。他們的功能不同,對他們使用方式也就不同。靜態儲存區:記憶體在程式編譯的時候就已經分配好,這塊記憶體在程式的整個運行期間都存在。它主要存放待用資料、全域資料和常量。棧區:在執行函數時,函數內局部變數的儲存單元都可以在棧上建立,函數執行結束時這些儲存單元自動被釋放
代碼如下所示:複製代碼 代碼如下:#include "stdafx.h"#include <iostream>#include <fstream>using namespace std;int _tmain(int argc, _TCHAR* argv[]){ //寫入檔案 ofstream ofs; //提供寫檔案的功能 ofs.open("d:\\com.txt",ios::trunc);
利用C++,讀入一個英文文本,並將文本中的每個英文單字首大寫。本程式練習了從一個文本中讀入流,用到了fstream流。 在文本的轉換過程中,用到了isalpha()——是否是字母,toupper()——轉換為大寫字元 這兩個函數(針對string對象的單個字元的操作。類似的操作還有isalnum()——是否是字母或數字,iscntrl()——是否是控制字元, isdigit()——是否是數字,isgraph()——是否不是空格,但可以列印,islower()——是否是小寫字母, isprint(