亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? ex11.cpp

?? c++代碼,來源于網上.c++代碼,來源于網上c++代碼,來源于網上.
?? CPP
字號:

	//		第11章  字符和內存處理	


   // [例11.1]無結尾字符'\0'的數組輸出顯示的結果是不確定的
    # include<stdio.h>        
    void main(void)        // char c[]="abc";等價于char c[4] = {'a', 'b','c', '\0'};
	{ 	char c[]="abc";    //相當于char c[4];c[0]= 'a'; c[1]= 'b'; c[2]= 'c'; c[3]= '\0';
        c[3]='d';		printf("c->%p->%s,sizeof(c)=%d\n",c,c,sizeof(c));
	} 	//輸出:c->0065FDF4->abcd8??,sizeof(c)=4
//[例11.2]字符串初始化指針和數組的差異
	# include<stdio.h>        
    void main(void) 
	{   char* s="123456789"; printf("s->%p:%s,%s sizeof(s)=%d\n",s,s,s+4,sizeof(s));
		char c[]="abcdefghi"; printf("c->%p:%s,%s sizeof(c)=%d\t",c,c,c+7,sizeof(c));
        for(int k=0;k<9;k++)    printf("%c,",s[k]);
        printf("%d\n",s[9]);
	}     //程序運行輸出結果:
//s->00420FA0:123456789,56789 sizeof(s)=4
//c->0065FDE8:abcdefghi,hi sizeof(c)=10		  1,2,3,4,5,6,7,8,9,0
///	[例11.3] 從屏幕讀取文本串到字符數組中
	#include<stdio.h>				
	void main(void)
	{ 	char a[12],b[6],*p=a;    //定義兩個字符數組a,b。字符指針p,p等于a
	  	printf("鍵入文本串\n");	
		scanf("%s %s",a,b);     //讀入字符串時格式控制以空格分隔
	 	printf("%s,%s\n",a,b);
        scanf("%s ",p);
	 	printf("%s \n",a);
	}
//[例11.4]字符串初始化二維字符數組
    #include <stdio.h>
    void show(char*p)    //輸出以p定位的其后5個字符的十進制數
	{   int k=0;         //不要求實參字符指針指向'\0'結尾的字符串
        while( k<5)   printf("%d,",p[k++]); 
	}                              
	void main(void)
	{   char a[][5]={"1","23"};
        char b[2][5]={49,0,0,0,0,50,51,0,0,0};
	    show(a[0]);	  show(a[1]);printf("\n");          //輸出49,0,0,0,0,50,51,0,0,0,
	    show(b[0]);	  show(b[1]);                   //輸出49,0,0,0,0,50,51,0,0,0,
	}
//	[例11.5]二維數組初始化完整形式           
	# include<stdio.h>                           
	extern void f(char s[3][5],int n);                 
    void main(void)                              
	{   char s[][5]={{' ',' ','*',' ',' '},                 
		{' ','*',' ','*',' '}, {'*','*','*','*','*'}};                  
		f(s,0);printf("\n");f(s,1);                      
	}                                         
/// [例11.6]二維數組初始化截斷形式
	# include<stdio.h>
	extern void f(char s[3][5],int n);
	void main(void) 
	 {  char b[][5]={{' ',' ','*'},
					{' ','*',' ','*'}, {'*','*','*','*','*'}};
		 f(b,0);printf("\n");f(b,1);
	 }//設執行文件為a.exe

	void f(char s[3][5],int n)      //注意上面兩者初始化形式的差異!
	{   for(int j=0;j<3;j++)  
		{	for(int k=0;k<5;k++)              //內層循環為if~else語句
			     if(n==1) printf("%c",s[j][k]);   // n==1輸出字符
			     else     printf("%d,",s[j][k]);  //否則輸出字符的ASCII碼的十進制數
		    if(n==1) printf("\n");
		}
	}
  //  [例11.7]字符串初始化字符指針數組和二維字符數組
    # include<stdio.h>      
    void main(void) 
	 {   char *pa[]={"a","bc","def","higk"};//字符串初始化字符指針數組
		 int n=sizeof(pa)/sizeof(pa[0]); int k;
		 for(k=0;k<n;k++)	      printf("%p->%s ",pa[k],pa[k]);		   
		 printf("\nsizeof(pa)=%d,sizeof(pa[0])=%d\n",sizeof(pa),sizeof(pa[0]));
	     char ca[][5]={"1","23","456","7890"};//字符串初始化二維字符數組
		 n=sizeof(ca)/sizeof(ca[0]);
		 printf("sizeof(ca)=%d,sizeof(ca[0])=%d\n",sizeof(ca),sizeof(ca[0]));
		 for( k=0;k<n;k++)		      printf("%p->%s ",ca[k],ca[k]);		   
     }
//[例11.8] 字符串初始化局部二維字符數組與生存期
   # include<stdio.h>
    char* sa(int n)      //返回char*型指針值的函數
	{//static
         char ca[][5]={"1","23","456","7890"};
         return ca[n];
	}
//[例11.9] 字符串初始化指針數組與生存期(多學時)
   # include<stdio.h>    
	char* ga(int i)                        //字符指針數組的元素pa[i]是指針
	{    char *pa[]={"a","bc","def","higk"};  //pa[i]指向字符串占住的全局數據區
	     return pa[i];                    //數組pa本身是局部數組
	}                                 // ga將全局數據區的地址pa[i]輸送給主控程序
    void main(void) 	 {   for(int k=0;k<4;k++)   printf("%p->%s  ",ga(k),ga(k));	}
//[例11.10]二維字符數組行地址初始化指針數組(多學時)
    # include<stdio.h>    
	char* ca(int i)      //返回指針值的函數,返回的內存空間的地址應是可操作的
	{    char c[][5]={"a","bc","def","higk"}; //c[4][5]是局部數組
         char*  pa[]={c[0],c[1],c[2],c[3]};  //pa[i]指向局部數組的數據區
	     return pa[i];                    //數組pa本身是局部數組
	}                             // ca將局部數據區的地址pa[i]輸送給主控程序
    void main(void) 
	 {   for(int k=0;k<4;k++)   printf("%p->%s  ",ca(k),ca(k));	}
//[例11.11]返回char**指針值的函數(多學時)
    # include<stdio.h>  
    char** ppn(char *pp[],int n){return pp+n;}    //函數返回相對于入口指針的偏移
    void main(void) 
	 {   char *pa[4]={"a","bc","def","ghijk"};//字符串初始化字符指針數組
		 for(int k=0;k<4;k++)	 
			 printf("%s",*ppn(pa,k));		 //輸出:abcdefghijk  
     }

//[例11.12] 模擬strlen函數
	unsigned int  strlen1(const char*s)            /**函數的要點說明**/
	{   unsigned int length=0;                  // length紀錄字符串的個數
	    while(*s!='\0') {s++;length++;}           //長度length中不含'\0'
		return length;                         //返回不含結尾符的字符串長度
	}                                      //字符數組若無結尾字符則結果是游移的
    #include<string.h>//字符串處理函數的原型在頭文件string.h中
    #include<stdio.h>
    void main (void)
    {   char c[ ]="ab\0d";		
	    printf("strlen(c)=%d,sizeof(c)=%d,%s\n",strlen1(c),sizeof(c),c);
		c[2]='c';	    printf("strlen(c)=%d,%s\n",strlen(c),c);
		c[4]='e';	    printf("strlen(c)=%d,%s\n",strlen(c),c);
        printf("strlen(ab\053d)=%d,%s\n",strlen("ab\053d"),"ab\053d");
	}    //輸出結果:
//[例11.13] 模擬strcpy函數算例
	char* strcpy1(char *dst,const char*s)          /**函數的要點說明**/
	{   char * p=dst;                     	//p定位目標串的當前位置
	    while((*p=*s) !='\0')               //要求源串中包括結尾字符'\0'
		{p++;  s++;}                     //向后遍歷
	    *p='\0';		                    //目標串中最后添補結尾字符'\0'
 	    return dst;                         //返回目標串入口的原先地址
	}                                    //目標實參必須提供足夠的內存空間
    #include<string.h>
    #include<stdio.h>
	void main (void)
    {   char b[]="while  Hsiang river is flowing northward" ;      
        char * c=new char[sizeof(b)];
	    printf("%s\n",strcpy1(c,b));     // strcpy1 函數調用作為右值直接參入運算
		delete [] c;
	}    //輸出結果:while  Hsiang river is flowing northward
/////[例11.14] 模擬strcpy函數算例
    #include<string.h>
    #include<stdio.h>
	char* strcat1(char *dst,const char*src)   /**函數的要點說明**/
	{  unsigned  int i=0;                //目標串和源串需存在終止符'\0'
	   while(dst[i]!='\0')  i++;	          //搜尋到dst串的末尾'\0'處
	   while((dst[i]=*src)!='\0'){i++;src++;} //在dst末尾處開始追加源串直到源串的末尾'\0'
	   return dst;                       //返回目標串的入口地址dst
	}                    /**實參數組的長度下限down=strlen(dst)+ strlen(src)+1**/     
	void main (void)
    { char  c[32]="abcd";   //只讀字符串初始化字符數組c
      char  *p="-efg";     //字符串首地址初始化字符指針p
      strcat1(c,p);         p="-hijk" ;     printf("%s\n",strcat(c,p));  
	}		//輸出:abcd-efg-hijk
///[例11.15] strcmp函數 功能模擬算例
	int strcmp1(const char*s1,const char*s2) /**函數的要點說明**/
	{  while(*s1==*s2)              //從頭到尾逐個字符按ASCII碼進行相同關系比較
		{                          //小寫字母比大寫字母的ASCII碼大。
			 if(*s1=='\0') return 0;      //源串全等于目標串返回結果0。零差異返回
			s1++; s2++;             //雙指針同步向后搜尋
		}                          //先判斷,如果*s1!=*s2則立即跳出循環
		if(*s1>*s2) return 1;          //源串第k+1個字符大于相應目標串返回正1
		return -1;                   //源串小于目標串返回負1,前k個字符是一樣的
	}                              //其中k滿足0<=k<=min(strlen(s1),strlen(s2))
	#include<string.h>
    #include<stdio.h>
	void main (void)
    {   char sa[]="abCd";         const char *sb="abcd";		 char *sc="abcd";		
        if(strcmp(sc,sb)==0)       printf("sc=sb--%s\n",sc); // 輸出:sc=sb--abcd 
	    printf("strcmp(sa,sb)=%d\n",strcmp1(sa,sb)); // 輸出:strcmp(sa,sb)=-1
	    printf("strcmp(sb,sa)=%d\n",strcmp(sb,sa));// 輸出:strcmp(sb,sa)=1
	}
////[例11.16] 排序法對多個字符串按字母次序排列
    # include<stdio.h>  
    #include<string.h>           //字符指針引用形參
    inline void swap(char*& x,char*& y)		{char* p=x;x=y;y=p;}
	void SelectSort(char* a[], int n)
	{   for(int i=0;i<n-1;i++)  
		 {                     ////進入內層循環前[]()		  int min=i;               //設置最小元素下標初始值為i
  		  for(int j=i+1;j<n;j++)     //在區間中()尋找最小值對應的下標min         
    		  if(strcmp(a[j],a[min])<0)	//條件成立時
	  			min=j;           //最小元素下標動態對應最小元素的位置
		  if(min!=i)              //如果最小值對應的下標min在區間()中
			 swap(a[i],a[min]);    //交換元素后[,]()		 }         	}	void ExchangeSort(char* a[],int n)           //指針數組形參a
	{  for(int i=0;i<n-1;i++)                //外循環n-1次,排序好s[0]<s[1]<...<s[n-2]                               
		    for(int  j=i+1;j<n;j++)           //循環將s[i]...s[n-1]中的最小值置于s[i]中
			  if(strcmp(a[i],a[j])>0)          // 互換兩元素
				{ char *p=a[i];a[i]=a[j];a[j]=p;}				   
	 }
      void main(void) 
	 {	   char *ca[]={"For","Before","FOR","And","anyone"};
		   const int n=sizeof(ca)/sizeof(ca[0]); int k;
		   for( k=0;k<n;k++)		   printf("%p->%s ",ca[k],ca[k]);
		   typedef void (*VCI)(char*[],int);
           VCI  pfn[3]={SelectSort,ExchangeSort};
           k=1;                  //k取值0、1輸出效果相同
	       (*pfn[k])(ca,n);		       printf("\n after Sort\n");
		   for( k=0;k<n;k++)		   printf("%p->%s ",ca[k],ca[k]);		  
     }
///	[例11.17] 內存拷貝運算
   #include<string.h>
    #include<stdio.h>
	void* memcpy1(void *dst,const void*src,size_t n)//memcpy功能模擬說明
	{  char* pd=( char*)dst;                    //強制轉換void*型為 char*類型
       char* ps=( char*)src;                    //以便進行確定的內存尋址訪問
	   unsigned int k=0;                       //定位當前位置的計數
	   while(k< n )                           //先判斷然后做數據的輸送
		  { *pd++=*ps++; k++;}                //向高地址方向遍歷
      return dst;                              //返回目標串的地址
	}
	void main (void)
    {   long  e[]={1,2,3};                    //定義3個元素的long型數組e	  
        long d[5];                           //定義5個元素的long型數組d
	    memcpy1(d,e,sizeof(e));               //數組e[3]拷貝到數組d[5]的前三個元素
		memcpy(d+3,e+1,sizeof(long[2]));       //相當于d[3]=e[1],d[4]=e[2]
	    printf("d=[%d,%d,%d,%d,%d]\n",d[0],d[1],d[2],d[3],d[4]);
	}       //輸出:  d=[1,2,3,2,3]
///[例11.18] a.cpp  簡單的void型無入口形參的main函數
   # include <stdio.h>	
	void show(int argc,char* argv[])  //指針數組形參char* argv[]等價于char** argv
	{	argc=0;                  //顯示指針數組指向的字符串的函數show
	    while(*argv)              //循環要求指針數組中存在一個結束循環的0
			printf("argv[%d]=%s\n",argc++,*argv++);
		printf("argv[%d]=%d\n",argc,(char)*argv);	
	}
	void main(void)                             /*程序運行輸出結果*/
	{                                        /* argc=4          */
    	char* argv[]={"c:\\a.exe","a","bb",0};       /*argv[0]= c:\a.exe   */
    	int argc=sizeof(argv)/sizeof(argv[0]);       /*argv[1]=a        */
        printf("argc=%d\n",argc);                /*argv[2]=bb       */
	    show(argc,argv);		                /*argv[3]=0        */
	 }
 ////  [例11.19] m.cpp帶命令行參數的main函數
   # include <stdio.h>	
    extern void show(int argc,char* argv[]);
    void main(int argc, char* argv[])
	{   printf("argc=%d\n",argc);
	    show( argc,argv);			
	 }
/////////	[例11.20] echo.cpp的執行文件echo.exe在根目錄C:\下
	# include<stdio.h>
	void  main(int argc, char** argv)
	{  for (register int  k=1;k<argc;k++)
         printf("%s%c",argv[k],(k<argc-1)?' ':'\n');
	}        //程序運行如下(不輸出執行文件的命令名):
//C:\>鍵入echo xxxx  dddd(  得到輸出: xxxx dddd
  /// [例11.21]a.cpp的執行文件a.exe在根目錄C:\下,輸出執行文件的命令名
   # include <stdio.h>	
   void main(int n, char* s[])  {  for(;n>0;n--,s++) printf("%s,",*s); }
 //C:\>鍵入a  xxxx  dddd(  得到輸出:C:\a.exe,xxxx,dddd,  



?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩1区2区日韩1区2区| 成人精品视频一区二区三区尤物| 日韩精品福利网| 国产一区二区精品在线观看| 97se亚洲国产综合自在线不卡| 91精品国产全国免费观看| 欧美国产日韩亚洲一区| 午夜视频在线观看一区| 成人午夜视频在线观看| 日韩一级片在线播放| 最好看的中文字幕久久| 国内成人精品2018免费看| 欧美日韩一区小说| 中文字幕亚洲一区二区av在线| 免费在线一区观看| 欧洲av一区二区嗯嗯嗯啊| 国产日韩欧美a| 奇米四色…亚洲| 在线观看视频一区二区欧美日韩| 国产欧美精品一区aⅴ影院| 日韩激情视频网站| 欧美日韩在线播放三区四区| 亚洲精品乱码久久久久久 | 欧美一区日本一区韩国一区| 中文字幕亚洲电影| 国产福利一区二区三区视频在线| 日韩一区二区免费在线电影| 午夜婷婷国产麻豆精品| 欧美专区在线观看一区| 亚洲免费高清视频在线| 91玉足脚交白嫩脚丫在线播放| 精品国内二区三区| 麻豆国产91在线播放| 欧美一区二区在线不卡| 婷婷一区二区三区| 欧美美女视频在线观看| 艳妇臀荡乳欲伦亚洲一区| jizz一区二区| 中文字幕一区二区三| 成人综合婷婷国产精品久久| 欧美国产激情一区二区三区蜜月| 国产精品91一区二区| 久久一区二区视频| 国产成人精品网址| 中文av一区特黄| 成人高清视频在线| 亚洲欧美日韩国产中文在线| 欧美亚洲综合另类| 午夜精品成人在线视频| 日韩精品影音先锋| 国产一区二区三区在线观看免费视频| 欧美成人精品福利| 久久99精品久久久久婷婷| 欧美精品一区二区三区高清aⅴ| 精品系列免费在线观看| 久久久精品国产免大香伊| 成人综合婷婷国产精品久久蜜臀| 中文字幕字幕中文在线中不卡视频| 99热精品一区二区| 亚洲国产精品一区二区www在线| 欧美巨大另类极品videosbest | 国产欧美日韩综合| 成人手机电影网| heyzo一本久久综合| 欧美日韩国产高清一区二区| 中文字幕视频一区| 国产成人av一区二区三区在线| 日韩一区二区中文字幕| 一区二区在线观看不卡| 国产高清一区日本| 91亚洲大成网污www| 亚欧色一区w666天堂| 欧美精品一区二区精品网| 不卡的电影网站| 天天亚洲美女在线视频| 久久久精品国产免大香伊| 在线亚洲免费视频| 国产一区视频在线看| 亚洲主播在线播放| 久久免费午夜影院| 欧美三日本三级三级在线播放| 国产在线视频精品一区| 亚洲尤物视频在线| 欧美激情一区二区三区不卡 | 欧美日韩一区三区| 懂色av噜噜一区二区三区av| 亚洲va天堂va国产va久| 亚洲国产高清aⅴ视频| 91精品国产色综合久久| 色综合久久中文综合久久牛| 蜜桃精品视频在线| 亚洲综合激情网| 中文一区二区在线观看| 欧美妇女性影城| 色呦呦网站一区| 成人av在线网| 极品美女销魂一区二区三区免费| 亚洲国产毛片aaaaa无费看| 国产欧美精品一区aⅴ影院| 欧美电视剧免费全集观看| 91传媒视频在线播放| 国产精品18久久久久久久久| 日韩不卡一区二区| 亚洲成av人片观看| 一区二区三区中文字幕电影 | 欧美综合色免费| 高清不卡一二三区| 国产一区二区女| 男女男精品视频网| 亚洲五码中文字幕| 亚洲激情自拍偷拍| 成人免费在线视频| 国产精品免费久久久久| 久久久美女毛片| 精品国产免费久久| 精品国产不卡一区二区三区| 欧美一区二区精品久久911| 538在线一区二区精品国产| 欧美视频一区二区三区四区 | 国精产品一区一区三区mba桃花| 午夜精品久久久久久久久久| 91精品中文字幕一区二区三区| 亚洲国产欧美一区二区三区丁香婷| 日韩视频123| 91高清在线观看| 国产精一品亚洲二区在线视频| 亚洲最大成人网4388xx| 国产亚洲成aⅴ人片在线观看| 欧美亚洲国产一区二区三区va| 国产乱妇无码大片在线观看| 欧美视频在线不卡| 99精品视频在线播放观看| 99riav久久精品riav| 欧美在线观看禁18| 欧美综合久久久| 欧美一区二区日韩一区二区| 日韩三级精品电影久久久| 久久久久亚洲综合| 中文字幕一区二区三区在线播放 | 一区二区不卡在线播放 | 91啪亚洲精品| 欧美性色欧美a在线播放| 在线综合视频播放| 久久精品一区四区| 亚洲色图都市小说| 五月综合激情网| 男男gaygay亚洲| 国产jizzjizz一区二区| 91丨九色丨黑人外教| 欧美疯狂做受xxxx富婆| 久久精品无码一区二区三区| 中文字幕一区二区三区在线观看| 亚洲.国产.中文慕字在线| 国产乱码精品一区二区三区五月婷| 成人午夜电影网站| 欧美日韩高清影院| 国产亚洲人成网站| 亚洲国产毛片aaaaa无费看| 国内外精品视频| 色先锋资源久久综合| 日韩女优视频免费观看| 自拍视频在线观看一区二区| 青青草原综合久久大伊人精品优势| 国产成人午夜高潮毛片| 欧美日韩国产精选| 国产精品视频yy9299一区| 婷婷一区二区三区| 91麻豆蜜桃一区二区三区| 日韩午夜在线播放| 亚洲精品中文在线影院| 国产在线精品一区二区三区不卡| 91社区在线播放| 精品国产乱码久久久久久蜜臀| 一区二区视频在线| 成人免费高清在线| 日韩欧美国产小视频| 亚洲女子a中天字幕| 国产成人精品免费看| 欧美一区二区三区四区五区| 亚洲人吸女人奶水| 国产大陆精品国产| 日韩视频一区二区三区在线播放| 夜夜爽夜夜爽精品视频| 成人免费va视频| 一区二区三区美女视频| 粉嫩13p一区二区三区| 欧美成人精精品一区二区频| 亚洲国产成人av| 色综合久久88色综合天天| 国产精品美女久久久久久2018| 日韩一区二区免费视频| 日韩一区二区三区免费看 | 国产一区二区伦理片| 91麻豆免费在线观看| 欧美不卡在线视频| 亚洲人xxxx| 日本成人在线看| 99免费精品视频| 粉嫩高潮美女一区二区三区| 久久久午夜精品|