|
这是我目前在自学的编程语言。4 c- M# ]3 M+ o |* m9 X6 A7 a
放出一个例子程序.. 它可以截取。你输入的前4位字符。 其实这样程序没什么价值
2 n+ N p+ i2 h- y8 a) ]+ ?/ X 不过它的编程思想值得学习和研究。 呵呵 下面是源码。2 p( y- x" E& a1 Y: k) v
( Q6 a/ F9 q5 y6 I#include "stdafx.h"
# ^, T4 q) f5 D+ i' m4 n// left.cpp -- string function with a default argument$ x0 Q7 N( @" `; W% h
#include<iostream># W7 c) N% W& ]. w' q
const int ArSize = 80;( t" H3 V* e6 O: S0 e4 h: l
char * left (const char * str, int n = 1);
8 z2 t6 M/ _. A4 C& m* R2 ^5 I, @ m9 i
int _tmain(int argc, _TCHAR* argv[])% {' M" f# ~; P
{/ q3 D: z7 l' T2 { W6 W- ^! d/ L
using namespace std;
$ k& z6 F" X* I8 ^: r2 o char sample[ArSize]; // ArSize = 80
0 s4 }, l# ?* k/ L cout << "请输入字符串: \n";
( f2 o9 n! H0 Q0 T; Z. r: V- n i cin.get(sample,ArSize); // 可向sample输入80个字符
" o" i' J' d! I j char *ps = left(sample, 4); // --》转跳至 char * left (const char * str, int n)' p3 W5 S+ _8 w# R9 d& Z
cout << ps << endl;
+ X, `) h1 z F) L4 n! L: d delete [] ps; // free old string
$ Y% n9 G% Z: c+ o% g8 e ps = left(sample);
' S* o! Q! }0 w cout << ps << endl;
! p# N. w# c- b" \ delete [] ps; // ferr new string* ^9 `: B9 j# | ]
cin.get();% P5 h" b6 g* c# z* T
return 0;
6 ^* }) B( ?; I* t/ m3 r}
$ K7 `; h3 I! Z' w5 l6 w8 }* ?// This function returns a pointer to a new string " x5 ~. ?/ p% F( J9 Q
// consisting of the first n characters in the str string
8 ] j( K% T+ wchar * left (const char * str, int n)
5 P/ W/ P( Y7 i% V# F{ T% P1 X% s! Z% L
if(n < 0) // 防止字符数为负 比如 n = -19 F; T1 T( z7 `! k
n = 0; // 如果为负字符计数设置为 0 ,并返回空字符
, p5 w0 I; A9 P% _, P char * p = new char[n+1]; // 创建新字符串,以存储选择字符。3 Q, @' L5 @. `" Q4 _& w$ C
int i;2 }6 p; h' `' |) W4 k
for(i = 0; i < n && str; i++)
" }$ k9 K o7 R9 Z& n p = str; // copy characters
7 q) Q$ |# N# H% {+ Y. N( W while(i <= n)
+ C7 `& ^& G$ V/ o" x4 | p[i++] = '\0'; // set rest of string to '\0' " W7 o$ U; l0 K/ h
return p;
( D6 W. M4 |+ a5 W}
9 ?, P6 l4 u) B" p
`% ] p1 X' f- Q1 x9 ?, F6 _4 |! n[ 本帖最后由 琼ヾ苍 于 2008-9-17 09:30 编辑 ] |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
|