1. 程式人生 > >C語言--字串操作總結

C語言--字串操作總結

一、字串操作

1、原型:strcpy(char destination[], const char source[]); 
功能:將字串source拷貝到字串destination中 
例程:  
 #include <iostream.h> 
#include <string.h> 
void main(void) 

  charstr1[10] = { "TsinghuaOK"}; 
  charstr2[10] = { "Computer"}; 
  cout<<strcpy(str1,str2)<<endl; 
}

執行結果是:Computer 
第二個字串將覆蓋掉第一個字串的所有內容! 
注意:在定義陣列時,字元陣列1的字串長度必須大於或等於字串2的字串長度。不能用賦值語句將一個字串常量或字元陣列直接賦給一個字元陣列。所有字串處理函式都包含在標頭檔案string.h中。

2、原型:strncpy(chardestination[], const char source[], int numchars);

strncpy:將字串source中前numchars個字元拷貝到字串destination中。 
strncpy函式應用舉例 
原型:strncpy(chardestination[], const char source[], int numchars); 
功能:將字串source中前numchars個字元拷貝到字串destination中 
例程: 

#include <iostream.h> 
#include <string.h> 
void main(void) 

  charstr1[10] = { "Tsinghua "}; 
  charstr2[10] = { "Computer"}; 
  cout<<strncpy(str1,str2,3)<<endl; 
}

執行結果:Comnghua 
注意:字串source中前numchars個字元將覆蓋掉字串destination中前numchars個字元!

3、原型:strcat(chartarget[], const char source[]); 
功能:將字串source接到字串target的後面 
例程: 
#include <iostream.h> 
#include <string.h> 
void main(void) 

  charstr1[] = { "Tsinghua "}; 
  charstr2[] = { "Computer"}; 
  cout<<strcpy(str1,str2)<<endl; 
}

執行結果:TsinghuaComputer

注意:在定義字元陣列1的長度時應該考慮字元陣列2的長度,因為連線後新字串的長度為兩個字串長度之和。進行字串連線後,字串1的結尾符將自動被去掉,在結尾串末尾保留新字串後面一個結尾符。

4、原型:strncat(chartarget[], const char source[], int numchars); 
功能:將字串source的前numchars個字元接到字串target的後面 
例程:

#include <iostream.h> 
#include <string.h> 
void main(void) 

  charstr1[] = { "Tsinghua "}; 
  charstr2[] = { "Computer"}; 
  cout<<strncat(str1,str2,3)<<endl; 
}

執行結果:TsinghuaCom

5、原型:strlen(const char string[] ); 
功能:統計字串string中字元的個數 
例程: 

#include <iostream.h> 
#include <string.h> 
void main(void) 

  char str[100];  
  cout <<"請輸入一個字串:"; 
  cin >>str; 
  cout <<"The length of the string is:"<<strlen(str)<<"個"<<endl; 
}

執行結果Thelength of the string is x (x為你輸入的字元總數字)

注意:strlen函式的功能是計算字串的實際長度,不包括'\0'在內。另外,strlen函式也可以直接測試字串常量的長度,如:strlen("Welcome")。

6、char *strrev(char *string);  
將字串string中的字元順序顛倒過來. NULL結束符位置不變.  返回調整後的字串的指標. 

7、char *_strupr(char *string);  
將string中所有小寫字母替換成相應的大寫字母, 其它字元保持不變.  返回調整後的字串的指標. 

8、char *_strlwr(char *string);  
將string中所有大寫字母替換成相應的小寫字母, 其它字元保持不變.  返回調整後的字串的指標. 

參考:http://www.jb51.net/article/37410.htm

二、字串型別轉換 

1、float轉為char*

float slicePos=100.02f;

charsliceP[10];

sprintf(sliceP,"%.2f",slicePos);

2、CString轉為char*

CStringtmp=”hello”;

char*partsRoot = tmp.GetBuffer(tmp.GetLength());

3、float轉為CString

CString str;

str.Format("%f",value);

4、int轉為CString

CString str;

str.Format("%d",value);

5、char*轉為CString

直接賦值即可

char name[] = "hello";

CString str = name;

6. CString轉為string

string = CT2CA(CString);