|
这是我目前在自学的编程语言。
9 Q1 r8 Q2 M+ f$ @- i0 Y 放出一个例子程序.. 它可以截取。你输入的前4位字符。 其实这样程序没什么价值' b) W: v4 P% T9 M# u$ |" k
不过它的编程思想值得学习和研究。 呵呵 下面是源码。
' {( z( U W0 ]
7 f6 K7 I* V, ?* n. F#include "stdafx.h"
/ {8 s" B, @2 J f+ L! i// left.cpp -- string function with a default argument' p! w1 G m; T7 ~
#include<iostream>
% X8 \; |& ]5 p4 V+ Xconst int ArSize = 80;' H5 E3 H O$ G" C+ d
char * left (const char * str, int n = 1);8 M0 z& v3 w% @6 Z! W6 f/ M
" v$ ~6 s) Y6 l# G. _7 ~" `+ Q
int _tmain(int argc, _TCHAR* argv[])
. K) P2 l) J$ W6 N. W( Y- o{
5 x( R/ L1 ~6 ]2 p% [* O/ w! B: z using namespace std;9 K' I! O5 Q2 w1 b: |: N9 Q" X7 e
char sample[ArSize]; // ArSize = 80: l) [0 J. }' R
cout << "请输入字符串: \n";
3 x8 J1 \5 L/ \+ B+ T! p. m7 V% P1 t cin.get(sample,ArSize); // 可向sample输入80个字符
; _. G% O) i- d& d char *ps = left(sample, 4); // --》转跳至 char * left (const char * str, int n)% [2 m+ _: a C; X" R; K
cout << ps << endl;6 t# C3 u. |+ i
delete [] ps; // free old string
0 u* R x' S8 | ps = left(sample);
9 R7 | n( `6 g8 R* o6 t) e cout << ps << endl;
7 e4 [/ G: q6 ~! A delete [] ps; // ferr new string
# A' M. S @! ]; d* _ cin.get();
/ V5 k" f$ ]3 _7 \2 B1 ` return 0;0 Y) ]+ P. p5 x4 l" t) D
}) D5 B8 @3 m, L
// This function returns a pointer to a new string
0 R; j/ J& t$ ]( h// consisting of the first n characters in the str string
7 J: N' h8 u( `char * left (const char * str, int n)
. p4 m) x; l# n) f0 V{: |. L2 R4 P% q
if(n < 0) // 防止字符数为负 比如 n = -1
: c: ^6 ]) J7 _4 M/ ] n = 0; // 如果为负字符计数设置为 0 ,并返回空字符
& W8 y1 {' f* o! w, \6 O! c char * p = new char[n+1]; // 创建新字符串,以存储选择字符。
5 a, U% v; K: h2 M" y int i;3 u7 \) \' h5 s* z
for(i = 0; i < n && str; i++) 8 }3 v! L+ @2 ?. h9 z: t
p = str; // copy characters& L, F' N4 e5 W9 I8 `; c
while(i <= n)
9 Z. ~% ?) _# W1 F- Z p[i++] = '\0'; // set rest of string to '\0'
6 f/ a6 w* U4 f3 a- e return p;' v4 U, h( F" b1 D5 E* J
}
, S% z2 |- P. U7 ?% Q+ Y, Q
. N9 k9 O( r! r5 g# a+ j9 y[ 本帖最后由 琼ヾ苍 于 2008-9-17 09:30 编辑 ] |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?注册
x
|