3 3 includeiostream includestring using namespace std void

  • Slides: 26
Download presentation

第 3讲 指针3 #include<iostream> #include<string> using namespace std; void main( ) { char *left(char*s,

第 3讲 指针3 #include<iostream> #include<string> using namespace std; void main( ) { char *left(char*s, int n); char *p, s[100]; int n; strcpy(s, "1234567890"); cout<<"请输入一个正整数:"; cin>>n; p=left(s, n); cout<<"原来的字符串为:"<<s<<endl; cout<<"左子串为:"<<p<<endl; delete []p; } 3

第 3讲 指针3 char *left(char *s, int n) { char *t; int l; l=strlen(s);

第 3讲 指针3 char *left(char *s, int n) { char *t; int l; l=strlen(s); t=new char[l+1]; strcpy(t, s); if (n<l) t[n]=0; return t; } 4

第 3讲 指针3 例2 函数指针 #include <iostream> using namespace std; void print_stuff(float data_to_ignore); void

第 3讲 指针3 例2 函数指针 #include <iostream> using namespace std; void print_stuff(float data_to_ignore); void print_message(float list_this_data); void print_float(float data_to_print); void (*function_pointer)(float); void main() { float pi=(float)3. 14159; float two_pi=(float)2. 0*pi; 8

第 3讲 指针3 print_stuff(pi); function_pointer = print_stuff; function_pointer(pi); function_pointer = print_message; function_pointer(two_pi); function_pointer(13. 0);

第 3讲 指针3 print_stuff(pi); function_pointer = print_stuff; function_pointer(pi); function_pointer = print_message; function_pointer(two_pi); function_pointer(13. 0); function_pointer = print_float; function_pointer(pi); print_float(pi); } 9 9

第 3讲 指针3 void print_stuff(float data_to_ignore) { cout<<"This is the print stuff function. n";

第 3讲 指针3 void print_stuff(float data_to_ignore) { cout<<"This is the print stuff function. n"; } void print_message(float list_this_data) { cout<<"The data to be listed is " <<list_this_data<<endl; } void print_float(float data_to_print) { cout<<"The data to be printed is " <<data_to_print<<endl; } 10 10

第 3讲 指针3 例 3、 从 键 盘 中 输 入 若 干 个

第 3讲 指针3 例 3、 从 键 盘 中 输 入 若 干 个 字 符 串 , 然 后 将 它 们 输 出,并且截掉超过给定长度的部分。 #include<iostream> #include<cstring> using namespace std; void main() { int Get. Data(char *p[], int count, int l); void left(char *d, char *s, int n); char *d[101]; int i, n; 13

第 3讲 指针3 } for(i=1; i<101; i++) { d[i]=new char[21]; if (!d[i]) break; }

第 3讲 指针3 } for(i=1; i<101; i++) { d[i]=new char[21]; if (!d[i]) break; } n=Get. Data(d, i, 20); for(i=1; i<n+1; i++) puts(d[i]); for(i=1; i<101; i++) delete []d[i]; 14

第 3讲 指针3 int Get. Data(char *p[], int count, int l) { void left(char

第 3讲 指针3 int Get. Data(char *p[], int count, int l) { void left(char *d, char *s, int n); char s[100]; int n; n=0; while(n<count) { gets(s); if (!s[0]) break; n++; left(p[n], s, l); } return n; } 15

第 3讲 指针3 void left(char *d, char *s, int n) { int l, i;

第 3讲 指针3 void left(char *d, char *s, int n) { int l, i; l=strlen(s); if(n>l) n=l; for(i=0; i<n; i++) *d++=*s++; *d=0; } 16

第 3讲 指针3 #include<iostream> using namespace std; void main(int argc, char *argv[]) { char

第 3讲 指针3 #include<iostream> using namespace std; void main(int argc, char *argv[]) { char c; if (argc != 3) cout<<"参数个数不对!n"; else { c=*argv[1]; switch(c) { case '+': cout<<"执行加密程序段。n"; break; 18