C/C++字串筆試知識點及例項

lightmare625發表於2018-07-28

一、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;
}
  •  

版權宣告:本文為博主原創文章,未經博主允許不得轉載。 https://blog.csdn.net/wangjun_huster/article/details/66476757

相關文章