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

2021-08-09 12:39:49 字數 1576 閱讀 1654

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'<

c語言開關語句是不是case後面只能跟一句話

case 0 break case 1 else if fs key message inc press else if fs key message dec press else if fs key message enter short press break case 2 不是,可以是多條語句...

pascal中的case句怎麼用

pascal中的case語句形式如下 case 表示式 of 常量1 語句1 常量2 語句2 常量n 語句n else 語句 n 1 可選項 end 其中常量1 n為固定值,不能是資料範圍,但可以是資料集合。表示式,僅可以取變數本身,也可以是帶運算的變數,也可以是邏輯表示式,但邏輯表示式的話,其下方...

pascal 語言中case語句的用法

四 case語句 分情況語句適用於對一個條件的多種情況的響應。格式 case 表示式 of 標號1 語句1 標號2 語句2 標號n 語句n else 語句n 1 end case語句在使用時有幾點要注意 1.end與case對應 標號與語句之間用 分隔 else與語句之間不用分隔符。2.標號必須是一...