C C 題目 字元與字串

2021-09-25 01:36:50 字數 1349 閱讀 9763

char a[4]=;

char b[4]=;

【答案】

abcd€

efg【分析】

由於字串是以』\0』為結尾的,所以陣列a不是乙個字串。陣列b列印直到空字元為止有7個字元顯示。而陣列a讀取了』d』字元之後,便在其隨後的位元組繼續解釋要列印的字元,直到遇到空字元為止。

const int arsize=5;

char name[arsize];

cin.getline(name,arsize);

cout<【答案】

you    y ou    your

【分析】

getline函式是讀取整行,它是使用者使用回車鍵輸入的換行符確定輸入結尾的,即字串是以為』\0』結尾,為getline函式實現是以換行符為結尾。第二個引數是讀取的字元數。當輸入的字元數小於arsize時,就在其字元隨後以換行符代表讀取結尾。當輸入的字元數大於等於arsize時,就按輸入的前arszie-1個字元讀取,再加上換行符。

const int arsize=5;

char name[arsize];

cout<【答案】

若執行cin.get(name,arsize);:

結果為[輸入]123

[輸出]123

若執行cin.get(name,arsize).get();:

結果為[輸入]123

[輸出]123[輸入]123

[輸出]123

【分析】

前者get函式呼叫方式,第一次呼叫後,就把換行符留在輸入佇列裡。第二次再次呼叫時,由於輸入佇列裡記錄了換行符,get函式認為已經到達結尾,便不再執行可讀取內容。

前者get函式呼叫方式,主要是用來處理換行符的。也就是說,不受第一次呼叫的換行符的影響,繼續執行get函式讀取的字元。

#include using namespace std;

#includeint main()

;char arr2[4]=;

arr1=arr2;

arr1[0]=arr2[0];

cout<【答案】

#include using namespace std;

#include//由於iostream.h 中沒有對 operator<<(string) 的過載,所以在cout<,因為string在這裡是乙個容器。在c語言中為#includeint main()

;char arr2[4]=;

arr1=arr2;//錯誤。陣列不能賦值給另乙個陣列

arr1[0]=arr2[0];

cout《就會出錯

return 0;

}

字串題目

1.數串 1.題目描述 設有n個正整數,將他們連線成一排,組成乙個最大的多位整數。如 n 3時,3個整數13,312,343,連成的最大整數為34331213。如 n 4時,4個整數7,13,4,246連線成的最大整數為7424613。輸入描述 有多組測試樣例,每組測試樣例包含兩行,第一行為乙個整數...

字串相關題目

判斷兩個字串str1和str2,是否互為旋轉詞 字串str左邊任意長度的子串挪到右邊 1234 的旋轉詞有1234 2341 3412 4123 時間複雜度為o n 做法 1 判斷兩字串長度是否相等 2 長度相等,生成str1 str1的大字串 大字串包含了str1的所有旋轉詞 3 在大字串中尋找是...

字串常量題目

string s1 a string s2 b string s3 a b 直接拼接成 ab 放入字串常量池,string s4 s1 s2 使用stringbuilder 拼接。然後呼叫 tostring new乙個在堆中新開闢的字串物件 string s5 ab 把 ab 放入常量池,之後賦值給...