《C++捷徑教程》讀書筆記–Chapter 7–函數,第一部分:基礎知識(第二部分)

來源:互聯網
上載者:User

//--《C++捷徑教程》讀書筆記--Chapter 7--函數,第一部分:基礎知識(第二部分)
//--Chapter 7--函數,第一部分:基礎知識
//--11/14/2005 Mon.
//--Computer Lab
//--Liwei

//--程式#15  命令列參數
#include <iostream>
using namespace std;

int main(int argc, char *argv[])
{
 if(argc!=2){
  cout<<"You forgot to type your name./n";
  return 1;
 }

 cout<<"Hello "<<argv[1]<<endl;

 cout<<endl<<"======================="<<endl;
    //getchar();
    return 0;
}

//--程式#16  命令列參數
#include <iostream>
using namespace std;

int main(int argc, char *argv[])
{
 int t,i;
    for(t=0; t<argc; t++){
  i=0;
  cout<<"----";
  while(argv[t][i]){
   cout<<argv[t][i];
   ++i;
  }
 
 }

 cout<<endl<<"======================="<<endl;
    //getchar();
    return 0;
}

//--程式#17  命令列參數
#include <iostream>
#include <cstdlib>
using namespace std;

int main(int argc, char *argv[])
{
 double a,b;
 if(argc!=3){
  cout<<"Usage: add num num/n";
  return 1;
 }

 a=atof(argv[1]);
 b=atof(argv[2]);

 cout<<a+b;

 cout<<endl<<"======================="<<endl;
    //getchar();
    return 0;
}

//--程式#18  atoi()等使用
#include <iostream>
#include <cstdlib>
using namespace std;

int main()
{
 int i;
 long j;
 double k;

 i=atoi("100");
 j=atol("100000");
 k=atof("-0.123");

 cout<<i<<' '<<j<<' '<<k;

 cout<<endl<<"======================="<<endl;
    //getchar();
    return 0;
}

//--程式#19  傳回值
#include <iostream>
#include <cstdlib>
using namespace std;

int main()
{
 int i;
 
 i=abs(-10);
 cout<<abs(-23);
 abs(100);

 cout<<endl<<"======================="<<endl;
    //getchar();
    return 0;
}

//--程式#20  return
#include <iostream>
using namespace std;

int find_substr(char *sub, char *str);

int main()
{
 int index;

 index=find_substr("three","one two three four.");

 cout<<"Index of three is: "<<index<<endl;

 cout<<endl<<"======================="<<endl;
    //getchar();
    return 0;
}

int find_substr(char *sub, char *str)
{
 int t;
 char *p,*p2;
 
 for(t=0; str[t]; t++){
  p=&str[t];  cout<<*p;
  p2=sub;
  while(*p2 && *p2==*p){
   p++;
   p2++;
  }
  if(!*p2) return t;
 }

 return -1;
}

//--程式#21  void
#include <iostream>
using namespace std;

void print_vertical(char *str);

int main(int argc, char *argv[])
{
 if(argc==1)
  print_vertical(argv[0]);

 cout<<endl<<"======================="<<endl;
    //getchar();
    return 0;
}

void print_vertical(char *str)
{
 while(*str)
  cout<<*str++<<endl;
}

//--程式#22  改寫20
#include <iostream>
using namespace std;

char *find_substr(char *sub, char *str);

int main()
{
 char *substr;

 substr=find_substr("three","one two three four.");

 cout<<"substring found: "<<substr<<endl;

 cout<<endl<<"======================="<<endl;
    //getchar();
    return 0;
}

char *find_substr(char *sub, char *str)
{
 int t;
 char *p,*p2,*start;
 
 for(t=0; str[t]; t++){
  p=&str[t];  //cout<<*p;
  start=p;
  p2=sub;
  while(*p2 && *p2==*p){
   p++;
   p2++;
  }
  if(!*p2) return start;
 }

 return 0;
}

//--程式#23  程式使用了函數原型進行強制類型檢測
#include <iostream>
using namespace std;

void sqr_it(int *i);

int main()
{
 int x;
 x=10;

 sqr_it(x);//error

 cout<<endl<<"======================="<<endl;
    //getchar();
    return 0;
}

void sqr_it(int *i)
{
 *i=*i * *i;
}

//--程式#24  遞迴
#include <iostream>
using namespace std;

int factr(int n);
int fact(int n);

int count=0;

int main()
{
 cout<<"4 factorial is "<<factr(4);
 cout<<endl;

 cout<<"4 factorial is "<<fact(4)<<endl;

 cout<<endl<<"======================="<<endl;
    //getchar();
    return 0;
}

int factr(int n)
{
 int answer;
 count++;
 cout<<"count: "<<count<<endl;

 if(n==1)  return 1;

 answer=factr(n-1)*n;

 cout<<"answer is: "<<answer<<endl;
 return answer;

}

int fact(int n)
{
 int t,answer;
 answer=1;
 for(t=1; t<=n; t++)
  answer=answer*(t);

 return answer;

}

//--程式#25  遞迴反向輸出字串
#include <iostream>
using namespace std;

void reverse(char *s);
int count;

int main()
{
 char str[]="this";
 reverse(str);

 cout<<endl<<"======================="<<endl;
    //getchar();
    return 0;
}

void reverse(char *s)
{
 count++;
 cout<<"count: "<<count<<endl;
 if(*s)
  reverse(s+1);
 else
  return;
 
 cout<<*s<<"==";
}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.