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);