第8章作業2

2021-10-12 12:28:51 字數 3366 閱讀 5636

1.在字串中查詢指定字元(90分)

題目內容: 在字串中查詢指定字元。編寫函式char *findchar(char *s, char

c),利用指標訪問方式,在s指向的字串中查詢字元c,若找到,則把字串中首次出現的c的位址返回,否則返回null。在main函式中驗證該函式的正確性,輸出字串中c及之後的內容,或者輸出no found。

輸入格式: 第一行:輸入乙個字串,字串長度小於100。 第二行:要查詢的字元。 輸入範圍包含整個ascii字符集(包括空格)。

輸出格式: 輸出字串中c之後的內容,或者輸出no found。

輸入樣例: sajkajkajsafaa j

輸出樣例: jkajkajsafaa

#include

using

namespace std;

char

*findchar

(char

* str,

char ch)

intmain()

2.a+b(100分) 題目內容:

輸入字串a+b,輸出它們的和c。設計兩個函式,乙個函式void separate(char

s,chars1,char*s2),將輸入的字串中的兩個加數a與b分割出來。再設計乙個函式void add(char s1,chars2)計算a+b的和。 輸入格式: 乙個包含兩個數值串行和乙個加號的字串

輸出格式: 輸出c

輸入樣例: 11111111111111111111111111111111111+1111111111111111111111111111

輸出樣例: 11111112222222222222222222222222222

#include

using

namespace std;

void

separate

(char

* s,

char

* s1,

char

* s2)

index_s1 -=2

;while

(s[index_s2++]!=

0)index_s2 -=2

;//s1儲存的內容是521,s2儲存的內容是94321

for(

int i = index_s1; i >=

0; i--

) s1[index_s1 - i]

+= s[i]

;for

(int j = index_s2; s[j]

!='+'

; j--

) s2[index_s2 - j]

+= s[j];}

void

add(

char

* s,

char

* s1,

char

* s2)

;//儲存s1+s2的結果

int p1 =

0, p2 =0;

while

(s1[p1]!=0

)while

(s2[p2]!=0

)for

(int i =

0; i <=

100; i++

)for

(int i =

0; i <=

100; i++)}

int place_of_last_num =

100;

//例如:213459的最後乙個數的下標為5

while

(res[place_of_last_num]

<=

0) place_of_last_num--

;for

(int k = place_of_last_num; k >=

0; k--

) cout << res[k];}

intmain()

, s1[

100]

=, s2[

100]=;

cin >> s;

separate

(s, s1, s2)

;add

(s, s1, s2)

;return0;

}

3.字串排序(20分)

題目內容: 設計乙個函式void input(char ** ps, int n)完成n個不等長字串的輸入,用new運算子根據實際輸入的字串長度分配儲存空間,依次使指標陣列中的元素指向每乙個輸入的字串;設計乙個函式void

sort(char ** ps, int

n)完成n個字串排序(在排序的過程中,要求只交換指向字串的指標值,不交換字串);設計乙個函式void release(char **

ps, int n)將n個字串的空間delete在主函式中定義乙個指向字串的指標陣列,完成將排序後的字串輸出。

輸入格式: 先輸入乙個整數代表字串個數,然後輸入字串,字串可包含空格。

輸出格式: 輸出排序後的字串

輸入樣例: 5 sfafajksjfks fsdfdgd ggkdsklskl;sksdkgslklgs dgs gsgfdgfd

輸出樣例: dgs fsdfdgd ggkdsklskl;sksdkgslklgs gsgfdgfd sfafajksjfks

#include

#include

#include

using

namespace std;

bool

compare

(char

*p1,

char

*p2)

void

input

(char

** ps,

int n)

}void

sort

(char

** ps,

int n)

}void

release

(char

** ps,

int n)

}int

main()

;int n;

cin >> n;

ps =

newchar

*[n]

;input

(ps, n)

;sort

(ps, n)

;release

(ps, n)

;return0;

}

Effective C 條款8 第2章

prevent exception from leving destructors.c 並不禁止析構函式吐出異常,但它不鼓勵這樣做.這是有原因的,考慮以下 class widget 假設這個可能吐出乙個異常 void dosomething v在這裡被自動銷毀當vector v被銷毀,它有責任銷毀其...

第8章 標準IO庫 2

8.2 條件狀態 io標準庫管理一系列條件狀態 condition state 成員,用來標記給定的io物件是否處於可用狀態,或者碰到了哪種特定的錯誤。strm iostate 機器相關的整型名,由各個iostream類定義,用於定義條件狀態。strm badbit strm iostate型別的值...

第8周作業作業

1 對稱加密過程由那三部分組成 加密 傳送方將資訊通過對稱金鑰加密形成密文 傳輸 傳送方通過網路把密文傳出 解密 接收者將資訊用對稱金鑰進行解密形成明文 2 使用 openssl 中的 aes 對稱加密演算法對檔案 file.txt 進行加密,然後解密 openssl enc aes 128 cbc...