|
这是我目前在自学的编程语言。7 R B0 K; E& l& C" _ x
放出一个例子程序.. 它可以截取。你输入的前4位字符。 其实这样程序没什么价值. F8 a( k2 z4 m$ Q5 \! S& j! m) u
不过它的编程思想值得学习和研究。 呵呵 下面是源码。
- g4 P/ I3 f8 b2 _* [# i5 L7 X/ I) u' D, h
#include "stdafx.h", w1 _- G5 r* R- H4 |
// left.cpp -- string function with a default argument
7 R5 q$ `8 w1 J/ N7 L8 T, L5 j#include<iostream>/ `. T& Q0 H! H# r; x
const int ArSize = 80;
m- K& @/ Z9 Uchar * left (const char * str, int n = 1);# y' \4 B0 ^: j6 {- n( n. l- P5 P
5 X* {# G+ k+ h) x
int _tmain(int argc, _TCHAR* argv[])
, g' C8 l& v7 X; b* N{' }! e7 _" h+ I }
using namespace std;8 o% Z. U$ R2 P3 ^ F
char sample[ArSize]; // ArSize = 80* r2 i7 E1 R' g7 I6 t
cout << "请输入字符串: \n";
. u3 J' O3 F [9 m, q: U- R! G4 {: { cin.get(sample,ArSize); // 可向sample输入80个字符5 |* \* {6 q9 ?2 g
char *ps = left(sample, 4); // --》转跳至 char * left (const char * str, int n)
0 P4 n# }7 V4 u cout << ps << endl;% x$ s5 J) C3 y
delete [] ps; // free old string
4 W" N# \- \0 c0 N6 j* v ps = left(sample);5 f# W' S8 E4 S. m6 o
cout << ps << endl;% U. V) h4 p1 L1 K5 K
delete [] ps; // ferr new string
" ~4 r( p: q8 r9 Z cin.get();
$ H7 s6 k' q: Q2 A return 0;1 }% r# y" U: N2 X( ^0 e2 N
}
6 H$ T+ E- z. N' m// This function returns a pointer to a new string 4 n1 i& q* M2 W: g: R$ H; G. y
// consisting of the first n characters in the str string 7 B/ ]9 I* s5 k4 E$ R* q! x
char * left (const char * str, int n) 5 `, g& ^8 J% I& N* l; J; [* @
{* b6 ^5 X y. g, \' ]) i/ ]" ~- ?, q
if(n < 0) // 防止字符数为负 比如 n = -1* A6 U$ ]) V! @& e
n = 0; // 如果为负字符计数设置为 0 ,并返回空字符1 f! A6 f, Y/ a# \: V9 A
char * p = new char[n+1]; // 创建新字符串,以存储选择字符。1 {& g6 f" W! d( B6 P, Q
int i;9 m9 \& h7 i" k5 d5 P; P8 O
for(i = 0; i < n && str; i++) 1 i! n+ H; d% L, T* S
p = str; // copy characters& m: o( m% t+ K( j" D/ b: N
while(i <= n)
3 U; } p X/ ~0 e; S8 @ Z) m p[i++] = '\0'; // set rest of string to '\0'
- [2 i j# \' ^9 K" F9 a) I return p;4 n" d1 g- H: q
}
! }& {8 |+ h# o) ]3 X2 ?8 n& ^* p5 L9 ?+ N. G- o2 T
[ 本帖最后由 琼ヾ苍 于 2008-9-17 09:30 编辑 ] |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?注册
x
|