Cswitch的case是隻能基於char的 不可以基於string的

時間 2021-08-11 17:50:57

1樓:匿名使用者

c/c++的switch中case的變數要求是可計算的整數。

不能用float,double等數值型別,更不能用字串,結構體,類等複合型別。

在c/c++中,字元型是可以預設轉化為整型的,所以可以

2樓:匿名使用者

類和結構體不能用switch做分支比較

另外"q"與'q'編譯時是不同對待的,'q'就程式設計一個ascii碼的數字了,而"q"則是先在**段的一個地方放個q,然後把這個地方的地址放在case的後面。由於這個地址在編譯時是不能確定的,必須到了連結時才能確定,所以編譯器會說case後面跟的不是個常數,儘管"q"是個常字串。switch case這種語句又要求必須在case後面做常數比較,所以就會報錯了。

是的,switch和case的配合只能應用於內建型別。string型別不可以用switch

補充:按鍵是用這個switch的,但是按鍵回饋到windows訊息的時候已經轉成整數了,所以可以用switch的。

3樓:匿名使用者

"q"是字串不是字元

{char *s=」12134211」; int v1=0,v2=0,v3=0,v4=0,k; for(k=0,s[k];k++) switch(s[k])

4樓:小灬寶丶

執行結果v1=5, v2=8, v3=6, v4=1

這個程式原本的意思應該是找出字串s中字元『1』『2』『3』『4』出現的個數,但是,標準的switch case語句應該是每個case後對應會有一個break;如果沒有break,會繼續往下執行。這裡沒有寫所以執行的過程是,第一個字元『1』時,v1++,v3++,v2++;第二個字元『2』時,v2++;第三個字元『1』時,v1++,v3++,v2++;第四個字元『3』時,v3++,v2++;第五個字元『4』時,v4++,v1++,v3++,v2++;第六個字元『2』時,v2++;第七個字元『1』時,v1++,v3++,v2++;第八個字元『1』時,v1++,v3++,v2++;你算算就知道個數了。

5樓:空山自念遠

全部為8我用c執行過了,不過我也想問為什麼

c++的基礎知識。switch 和case。case後面可以接字串嗎?請詳細點講解,謝謝 20

6樓:物理公司的

switch case

只支援整數和列舉型別

//一種偽的實現方式

include

using namespace std;

enum set ;

{ char str;

set temp;

cout << "please input a char: ";

cin>>str; // 獲取從螢幕中輸入的字元char2enum(str, temp); // 將字元str轉換為列舉temp

switch(temp) // 根據列舉的值,進行輸出{ case a:

cout<<'a'<

switch的case中用continue和break有區別麼

break是跳出迴圈執行迴圈下面的語句,continue是跳出 本次 迴圈,開始下一次迴圈。break是指跳出當前switch語句。標準的是 switch str case就是條件判斷了,如果等於就進入case裡面的語句語句執行完了,break表示跳出switch。 街角哦祝福 continue 不...

c語言中的case後不能加範圍嗎

不能加。c的語法中規定,在switch case語句中,case關鍵字後只能跟隨整型常量或enum型別。由於c年代久遠,故沒有一些年輕語言的一些語法糖,case加範圍就是其中之一 當然,加範圍的switch case語句可以用多個if else分支語句替代 int i if i 0 else if ...

英語辯論中的case對應的準確中文是什麼?例如propositional case develop

無心明澈 case 根據語境可以解釋為 案例,任務,方案 等等 英語辯論賽辯題為學習英語的好處 諾亞方舟號 學習英語的好處在英語辯論賽中可以這麼說 1,learning english can communicate with the world communication,because engl...