程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> C/C++中字符串常量的不相等性及字符串的Copy

C/C++中字符串常量的不相等性及字符串的Copy

編輯:C++入門知識
#include <iostream> 
   
  void main(void) 
  { 
   <!-- frame contents --> <!-- /frame contents -->     if("test"=="test") 
      { 
          cout<<"相等"; 
      } 
      else 
      { 
          cout<<"不相等"; 
      } 
  }
  
  上面的代碼我們測試兩個內容為test的字符串常量是否相等,按照常理,應該是相等的,這些在一些過程式語言中會得到相等的結論,但在c/c++卻不是這樣。
  
  為什麼呢?
  
  答案在這裡:因為字符串常量存儲在計算機內存中,兩個字符串常量的地址均不相同,所以這樣的比較自然就不會得到我們所需要的結果,假如要進行是否相等的比較應該使用strcmp()這個涵數進行比較!#include <iostream> 
  #include <string> 
  using namespace std; 
  void main(void)   
  {   
      if(strcmp("test","test")==0)   
      {   
          cout<<"相等";   
      }   
      else   
      {   
          cout<<"不相等";   
      } 
      cin.get(); 
  }  strcmp()的函數原形是,int strcmp(const char* str1,const char* str)
  
  相當將會返回一個等於0的整數,不相等的時候將會返回一個非0整數。#include <iostream> 
  #include <string> 
  using namespace std; 
  void main(void)   
  {   
      char test[]="test str!"; 
      char str[15]; 
      strcpy(str,test); 
      cout<<str<<endl; 
   
      int a[]={1,2,3,4,5}; 
      int b[5]; 
      memcpy(b,a,sizeof(a)); 
      for(int i=0;i<5;i++) 
      { 
          cout<<b[i]<<","; 
      } 
      cin.get(); 
  }  上面的代碼中的strcpy用來處理字符串數學組的copy,由於字符串數組屬於const char*也就是常量指針所以是不能用a="test str!";的方式賦值的,接在後面的memcpy用於處理非
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved