C/C++字串筆試知識點及例項
一、C字串與C++字串的深入理解
對於C語言,需要區分C字串和C字元陣列。
C字串:以字元NULL(‘\0’)結尾的字元陣列;
C字元陣列:陣列元素型別為字元型別。
C字串的的初始化:char str[] = "hello";
;
C字串的相關操作,利用“string”中定義的字串處理函式。
比如,strcpy(str,"world");//字串的賦值
等。
對於C++字串,需要注意的是字串封裝成了一種資料型別string,可以直接宣告變數並進行賦值等字串操作。
C字串和C++字串的簡單對比
TIP | C | C++ |
---|---|---|
標頭檔案名 | include< string> | include< string > |
標頭檔案目的 | 使用字串處理函式 | 使用string類 |
如何宣告與初始化 | char str[20] = “helllo”; | string str = “helllo”; |
宣告長度和使用NULL字元 | 是 | 否 |
實現字串的賦值 | strcpy(str,”world”); | str = “world”; |
C字串的輸入操作
字型修改方法
1、使用輸入操作符cin來填充字串變數,char str[20];cin>>str;
注意:以這種方式來讀取字串時,會忽略最初的空白字元(空格、製表符和換行符),而且輸入會在下一個空格或換行符處停止;
2、使用預定義函式getline獲取整行輸入(包括空格)。char str[20]; getline(str,20);
遇到行結束的時候輸入才會停止;
注意:getline 函式有兩個引數,第一個引數用於接收輸入的C字串變數;第二個引數用於規定getline最多能接收的字元個數。
C++string類的輸入操作
1、使用輸入操作符cin, string str; cin>>str;
2、使用getline函式, string str; getline(cin,str);
3、返回字串的長度,str.length(str);
C字串和C++string物件之間的轉換
1、C字串儲存到string型別的變數中,例如:
char str[] = "hello";
string mystr;
mystr = str;
2、C++string物件不能自動的轉換為C字串,需要進行顯示的型別轉換,需要用到string類的成員函式c_str() , strcpy ( a, b.c_str() );
字串到數字的轉換
atoi函式獲取一個C字串引數,返回對應的int值。如果引數不與一個int值對應,atoi就會返回0。atoi函式在檔案為cstdlib的庫中。
atoi ( "1234" );//返回整數1234
atoi ( "#123" );//返回0
/* 判斷字串是否為迴文字串*/
#include <iostream>
#include <cstring>
using namespace std;
bool Palindrome (char* str, int len) {
if (str == NULL) {
return false;
}
bool m = true;
for (int i = 0,j = len-1; i < len; i++,j--) {
if (str[i] != str[j]) {
m = false;
}
}
return m;
}
int main (void) {
char mystr[100];
cin>>mystr;
cout<<Palindrome( mystr, strlen(mystr) )<<endl;
return 0;
}