[注:このプログラムはvs2013バージョンを使用して検証されます]
する#include <stdio.hに> する#include <STDLIB.H> する#include < 文字列・H> の#pragma警告(無効:4996)INT my_strRidSpace(CHAR * DEST、チャー *のSRC、int型 *のN){ CHAR * BUF = SRC ; INT =開始0 ; INT端=のSTRLEN(BUF) - 1 。 int型のlen = 0 ; もし(BUF == NULL || DEST == NULL){ リターン - 1 。} // 从左边开始ながら、 (BUFは== [開始] 「 」 && BUFを[開始]!= 0){ // 現在の文字が空ではなく、終了しない場合に 開始++; // 右移動の位置 } しばらく [終了] bufを(== ' ' && BUF [END]!= 0){ // 現在の文字が空ではないが、無端場合 end--; // 左移動の位置 } でlen =終了-開始+ 1。; * = N- LEN; strncpyを( DEST、BUF + LEN、開始); // はstrncpy()、指定された長さ(バック0追加されていない)文字列DESTコピー DEST [LEN] = 0 ; / *ここで自分の指定された長さコピー文字列関数の実装 のための(I = 0をint型、IはLEN <; Iは++){ * DEST = *(BUF +始める); DEST ++; BUF ++; } * / 戻り 0 ; } int型メイン(ボイド){
/ * 非空白文字列長、ブロックモデルの2つの例を見つける: "asfqwfq" * / チャー * P = " asdqwfrd " ; CHAR STR [ 50 ] = { 0 }; int型 N- = 0 ; int型 RET = 0 。 RET = my_strRidSpace(STR、P、およびN-)。 もし(!RET = 0 ){ のprintf(" my_strRidSpace ERR%のD " 、RET)。 リターンRET; } のprintf(" STR =%S \ n " 、STR)。 printf(" N =%d個の\ N " 、N)。
printf(" \ nを" ); システム(「一時停止」)。 リターン 0 ; }