2つのc言語の呼び出し関数のまとめ

4398 ワード

system();


関数プロトタイプ:intsystem(constchar*command);
私はこれをテストの例にします:system(「abcde」);「abcde」は、内部または外部コマンドではなく、実行可能なプログラムまたはバッチファイルでもありません.Pressanykeytocontinueこれは問題を説明することができます:windowsオペレーティングシステムの下でsystem()関数は本当にコマンド解釈器ファイルcmdを呼び出します.exe、これはあなたが知っていると思いますが、解釈器が入力した文字列を対応する内部/外部コマンドや実行可能プログラム、バッチファイルに変換することで、pause(内部コマンド)、clrscr(外部コマンド)に関する問題を解決することができます.しかし、ここでは小さな問題があります.私の中国語XPの下のcmdも英語バージョンのようです.だからpauseは英語を表示します.consoleプログラムは中国語を表示しています.個人的にはconsoleプログラムとオペレーティングシステムの間に密接な関係があることを理解しています(言語の翻訳や内部呼び出しの中国語のcmdがある可能性があります).そのため、consoleプログラムの結果はcmdの結果と内容に言語の違いがあります.
ウィンドウのフォント色を変更するには、文system(「color 2」)を使用します.プログラムを実行すると、緑のフォントになります.

strncpy()関数


C/C++のstrncpy()関数は、source列の最初のn文字をdestination列にコピーする機能で、次のようにプロトタイプされます.
char * strncpy ( char * destination, const char * source, size_t num );

各パラメータの意味は明らかで、戻り値はdestinationと同じです.
この関数には、1、numがdestination列に自動的に末尾の'0'文字を付けない3つの状況があります.2、num=source列の長さ(最後の'0'文字を含む):関数はsourceのすべての文字をdestination列(source列の最後の'0'文字を含む)にコピーします.3、num>source列の長さ(最後の'0'文字を含む):関数はsourceのすべての文字をdestination列(source列の最後の'0'文字を含む)にコピーし、コピーした文字の総数がnumに等しくなるまでdestination列の最後に'0'文字を追加します.
[例]
source列の長さは6(最後の'0'文字を含む)であることに注意する声明があります.
char destination[] = "********************"; // destination : "********************0"
cosnt char *source = "-----";                // source :      "-----0"

シナリオ1:次の文が実行された場合:
strncpy( destination, source, 5 );

destinationの最初の5文字は'-'に置き換えられます.すなわち、'0'で'0'文字を表します.
destination : "-----***************0"

シナリオ2:次の文を実行した場合:
strncpy( destination, source, 6 );

destinationの最初の6文字はsourceの最初の6文字に置き換えられます.すなわち('0'で'0'文字を表します):
destination : "-----0**************0"

シナリオ3:次の文を実行した場合:
strncpy( destination, source, 10 );

destinationの最初の6文字はsourceの最初の6文字に置き換えられ、後に4つの'0'(0'で'0'文字を表す):
destination : "-----00000**********0"

参照先:http://en.cppreference.com/w/cpp/string/byte/strncpy例はいいですね.