|
这是我目前在自学的编程语言。% r8 w% @2 L* V1 \4 b
放出一个例子程序.. 它可以截取。你输入的前4位字符。 其实这样程序没什么价值
1 y) v* v% h8 Z* E6 U6 U 不过它的编程思想值得学习和研究。 呵呵 下面是源码。) C( h. u1 J ~+ ?9 e0 Q0 s
# ?; b2 b3 d& F8 {# t#include "stdafx.h"
5 i- y* c4 b6 @, Q4 D U/ a// left.cpp -- string function with a default argument p2 |, Q" |1 S2 A
#include<iostream>
# b! T1 j5 y# _ s% D0 p& X: Jconst int ArSize = 80;& u) j) Y1 x4 p1 R' e
char * left (const char * str, int n = 1);
: H7 n. }) M }; Z
Z( [% I7 J; l7 Q9 j0 L5 ], kint _tmain(int argc, _TCHAR* argv[]). {- H; r6 E, t1 G" Z
{/ X! Z) H! w9 p7 h. F! l I% Z
using namespace std;
" c5 c( F. \# V, p, \0 { char sample[ArSize]; // ArSize = 80
6 b' J v( _2 E/ T/ h5 I cout << "请输入字符串: \n";: A4 H/ A0 a0 P, G7 p, V: o. N% K" y
cin.get(sample,ArSize); // 可向sample输入80个字符
0 j8 B% I! z# ^, S char *ps = left(sample, 4); // --》转跳至 char * left (const char * str, int n)
( q& l9 ~4 v5 m3 s2 g c5 p! ` cout << ps << endl;- m; o3 s" c7 P: ^" n
delete [] ps; // free old string 5 e n$ W+ h% I
ps = left(sample);6 O& d, Q3 a5 w* F; `6 v
cout << ps << endl;) W9 {# K, S, l7 ^/ ^7 x! J! a
delete [] ps; // ferr new string
' x( g+ _1 X/ r8 O+ o; J. ~& u- | cin.get();1 Z* a( N0 p2 h' \
return 0;9 A; @, P1 o1 v! l7 f/ g& }/ \
}( a5 V6 ~# M7 v" x
// This function returns a pointer to a new string
2 r. m- }7 P. t1 [, G// consisting of the first n characters in the str string
, ?7 m$ U0 m j$ e7 Y" hchar * left (const char * str, int n)
8 w {; E( d0 e4 x/ O: Y{9 @( g1 C) a6 m+ M+ D! k. [. V
if(n < 0) // 防止字符数为负 比如 n = -1
# ~7 w) T' w- ~# }; I6 J n = 0; // 如果为负字符计数设置为 0 ,并返回空字符
% X% @3 V2 p% G% x3 ?. m char * p = new char[n+1]; // 创建新字符串,以存储选择字符。7 k) y$ b: y7 D
int i;, b* ], F* w/ Y2 _6 X
for(i = 0; i < n && str; i++) 8 W! H8 M$ [: z# U0 k, @
p = str; // copy characters
# C* |- M! ~/ S2 L while(i <= n)
: ~' w& W3 a$ ]2 b/ B9 C p[i++] = '\0'; // set rest of string to '\0' " a3 b1 r1 h0 o& M
return p;
/ r/ H0 m* x4 U, d5 I! D; _} g; H# s9 G0 ^) ]/ @
: Y, S. H. }8 b[ 本帖最后由 琼ヾ苍 于 2008-9-17 09:30 编辑 ] |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?注册
x
|