Time of Update: 2017-01-18
1)字串操作 strcpy(p, p1) 複製字串 strncpy(p, p1, n) 複製指定長度字串 strcat(p, p1) 附加字串 strncat(p, p1, n) 附加指定長度字串 strlen(p) 取字串長度 strcmp(p, p1) 比較字串 strcasecmp忽略大小寫比較字串strncmp(p, p1, n) 比較指定長度字串 strchr(p, c) 在字串中尋找指定字元 strrchr(p, c) 在字串中反向尋找 strstr(p, p1) 尋找字串
Time of Update: 2017-01-18
1、system(執行shell 命令)相關函數 fork,execve,waitpid,popen表標頭檔 #include<stdlib.h>定義函數 int system(const char * string);函數說明 system()會調用fork()產生子進程,由子進程來調用/bin/sh-cstring來執行參數string字串所代表的命令,此命令執行完後隨即返回原調用的進程。在調用system()期間SIGCHLD
Time of Update: 2017-01-18
在項目開發工程中,如果能確定哪個檔案下的哪個函數下的哪行出錯--即鎖定錯誤,那該多好啊,該文章就是為此而作的。首先來瞭解一下檔案預設的輸出資訊的函數吧:檔案資訊函數:複製代碼 代碼如下:printf("line : %d\n", __LINE__);
Time of Update: 2017-01-18
一.C語言中的static關鍵字在C語言中,static可以用來修飾局部變數,全域變數以及函數。在不同的情況下static的作用不盡相同。(1)修飾局部變數一般情況下,對於局部變數是存放在棧區的,並且局部變數的生命週期在該語句塊執行結束時便結束了。但是如果用static進行修飾的話,該變數便存放在待用資料區,其生命週期一直持續到整個程式執行結束。但是在這裡要注意的是,雖然用static對局部變數進行修飾過後,其生命週期以及儲存空間發生了變化,但是其範圍並沒有改變,其仍然是一個局部變數,範圍僅限於
Time of Update: 2017-01-18
先看看使用頁面是如何調用的。 複製代碼 代碼如下:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml">
Time of Update: 2017-01-18
在之前的一些看書或者學習中,一直有一種感覺有問題的態度,那就是認為看懂了,但是不動手,感覺這樣看書的效果不是很大。ls命令估計是我們在linux/unix裡面用的最多的一個命令了,我們就用c來簡單的實現一下ls命令。//// ls.c// apue//// Created by chenqing on 13-8-22.// Copyright (c) 2013年 chenqing. All rights reserved.// #include
Time of Update: 2017-01-18
一般開發過遊戲的都知道Lua和C++可以很好的結合在一起,取長補短,把Lua指令碼當成類似動態連結程式庫來使用,很好的利用了指令碼開發的靈活性。而作為一門流行的通用型指令碼語言Python,也是可以做到的。在一個C++應用程式中,我們可以用一組外掛程式來實現一些具有統一介面的功能,一般外掛程式都是使用動態連結程式庫實現,如果外掛程式的變化比較頻繁,我們可以使用Python來代替動態連結程式庫形式的外掛程式(堪稱文本形式的動態連結程式庫),這樣可以方便地根據需求的變化改寫指令碼代碼,而不是必須重新
Time of Update: 2017-01-18
職責鏈模式:使多個對象都有機會處理請求,從而避免請求的寄件者和接收者之間的耦合關係。將這些對象連成一條鏈,並沿著這條鏈傳遞該請求,直到有一個對象處理它為止。其思想很簡單,比如考慮員工要求加薪。公司的管理者一共有三級,總經理、總監、經理,如果一個員工要求加薪,應該向主管的經理申請,如果加薪的數量在經理的職權內,那麼經理可以直接批准,否則將申請上交給總監。總監的處理方式也一樣,總經理可以處理所有請求。這就是典型的職責鏈模式,請求的處理形成了一條鏈,直到有一個對象處理請求。給出這個例子的UML圖。UM
Time of Update: 2017-01-18
printf 可能是許多程式員在開始學習C語言時接觸到的 第二個函數(我猜第一個是main),說起來,自然是老朋友了,可是,你對這個老朋友瞭解多嗎?你對它的那個孿生兄弟sprintf瞭解多嗎?在將各種類 型的資料構造成字串時,sprintf的強大功能很少會讓你失望。由於sprintf跟printf在用法上幾乎一樣,只是列印的目的地不同而已,前者列印到字串中,後者則直接在命令列上輸出。這也導致sprintf比printf有用得多。所以本文著重介紹sprintf,有時也穿插著用用
Time of Update: 2017-01-18
題目:一個台階總共有n級,如果一次可以跳1級,也可以跳2級。求總共有多少種跳法,並分析演算法的時間複雜度。答:用一個函數f(n)來表示n級台階總的跳法。1、只有1個台階,則f(1) = 1;2、有2個台階,則f(2) = 2;3、當有n個台階時,如果第一次跳1級,有f(n-1)種跳法,如果第一次跳2級,有f(n - 2)種跳法,即f(n) = f(n-1) + f(n-2)。即為Fibonacci序列。複製代碼 代碼如下:#include "stdafx.h"#include
Time of Update: 2017-01-18
題目:寫一個函數,求兩個整數的之和,要求在函數體內不得使用+、-、×、÷。 分析:這又是一道考察發散思維的很有意思的題目。當我們習以為常的東西被限制使用的時候,如何突破常規去思考,就是解決這個問題的關鍵所在。看到的這個題目,我的第一反應是傻眼了,四則運算都不能用,那還能用什麼啊?可是問題總是要解決的,只能開啟思路去思考各種可能性。首先我們可以分析人們是如何做十進位的加法的,比如是如何得出5+17=22這個結果的。實際上,我們可以分成三步的:第一步只做各位相加不進位,此時相加的結果是12(個位元5
Time of Update: 2017-01-18
1. inline:定義內嵌函式,該關鍵字是基於定義,如果只在函式宣告時給出inline,則函數不會被認為是內嵌函式,所以必須在函數定義的地方也加上inline,同時inline只是向編譯器建議函數以內嵌函式處理,不是強制的。2.
Time of Update: 2017-01-18
很多時候,使用一些特別的庫, 在編譯可執行程式時, 需要添加額外的 CFLAGS 和 LIBS . 否則會提示找不到指定的標頭檔或者"undefined reference to ..." 的錯誤資訊.假如程式 test.c 中使用了 libxml 的 api, 直接複製代碼 代碼如下:$ gcc -Wall -o test test.c會提示錯誤訊息. 執行複製代碼 代碼如下:$ ls /usr/lib/pkgconfig/ | grep
Time of Update: 2017-01-19
一:C#串連SQL資料庫複製代碼 代碼如下:Data Source=myServerAddress;Initial Catalog=myDataBase;User Id=myUsername;Password=myPassword;Data Source=190.190.200.100,1433;Network Library=DBMSSOCN;Initial Catalog=myDataBase;User
Time of Update: 2017-01-19
第一步,建立一個CPP的DLL工程,然後寫如下代碼,產生DLL複製代碼 代碼如下:#include <stdio.h> #define DLLEXPORT extern "C" __declspec(dllexport) DLLEXPORT int __stdcall hello() {
Time of Update: 2017-01-19
變數的定義C語言中的變數都必須在範圍開始的位置定義!! C++中更強調語言的“實用性”,所有的變數都可以在需要使用時再定義。 #include <iostream> using namespace std; int main11() { int i = 0; printf("ddd"); int k; // 這段代碼在vc6,C語言編譯情況下就會報錯。就是因為這裡的定義 system("pause"); return 0; }
Time of Update: 2017-01-19
命令模式的作用是將一個請求封裝為一個對象,從而使你可用不同的請求對客戶進行參數化;對請求排隊或記錄請求日誌,以及支援可撤銷的操作。由於“行為要求者”與“行為實現者”的緊耦合,使用命令模式,可以對請求排隊或記錄請求日誌,以及支援可撤銷的操作。命令模式把請求一個操作的對象與知道怎麼執行一個操作的對象分割開。Command模式關鍵就是講一個請求封裝到一個類中(Command),再提供處理對象(Receiver),最後Command命令由Invoker啟用。另外,我們可以將請求接收者的處理抽象出來作為參
Time of Update: 2017-01-19
今天面試被問到了這個單例模式常用到的技術手段,下面進行分析: 很多情況下要求當前的程式中只有一個object。例如一個程式只有一個和資料庫的串連,只有一個滑鼠的object。通常我們都將建構函式的聲明置於public區段,假如我們將其放入private區段中會發生什麼樣的後果?這意味著什嗎?
Time of Update: 2017-01-19
迭代器模式:提供一種方法順序訪問一個彙總對象中個各個元素,而不暴露該對像的內部表示.迭代器模式應該是最為熟悉的模式了,最簡單的證明就是我在實現組合模式、享元模式、觀察者模式中就直接用到了 STL 提供的迭代器來遍曆 Vector 或者 List資料結構。迭代器模式也正是用來解決對一個彙總對象的遍曆問題,將對彙總的遍曆封裝到一個類中進行,這樣就避免了暴露這個彙總對象的內部表示的可能。模式的動機:
Time of Update: 2017-01-19
備忘錄模式旨在不破壞封裝性的前提下,捕獲一個對象的內部狀態,並在該對象之外儲存這個狀態。這樣以後就可將該對象恢複到原先儲存的狀態。在命令模式中,備忘錄模式經常還經常被用來維護可以撤銷(Undo)操作的狀態。類圖: Originator:負責建立一個備忘錄Memento,用以記錄當前時刻它的內部狀態,並可使用備忘錄恢複內部狀態。Originator可根據需要決定Memento儲存Originator的哪些內部狀態。