當前位置:首頁 » 編程語言 » 為什麼c語言不能用字元
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

為什麼c語言不能用字元

發布時間: 2022-06-14 09:50:15

c語言:為什麼會沒有字元的輸入,請指出哪裡錯了,應該怎麼改。

# include<stdio.h>
void main()
{
float a,b,sum;
char d;
printf("請輸入兩個數字\n");
scanf("%f",&a);
scanf("%f",&b);
while(getchar()!='\n')continue;//加上這句就可以了
printf("選擇演算法 '+','-','*','/'\n");
scanf("%c",&d);//這里,上面scanf輸入接收後的回車符被這個scanf接收了,把上面輸入後的回車符去掉就可以了
switch(d)
{
case '+':sum=a+b;break;
case '-':sum=a-b;break;
case '*':sum=a*b;break;
case '/':sum=a/b;break;
}
printf("%.0f%c%.0f=%.0f\n",a,d,b,sum);
}

Ⅱ C語言中為什麼字元不能用「」括起來

""是字元串字面值
是CONST CHAR*類型 不能當CHAR用
用了會類型不匹配
還有就是「」最後會自動加上一個\0

Ⅲ c語言定義變數時變數名不能使用的字元

C語言規定標示符只能由字母、數字和下劃線3種字元組成,且第一個字元必須為字母或下劃線。除開這些字元,其他的字元在c語言定義變數時都不能使用。
例如:
M.D.John
&123
#sfsjf
Ling
li
C++
Zhang-lin
4G22

Ⅳ c語言中為什麼不能用關系運算符比較兩個字元串

因為關系運算符只能比較兩個數的大小關系
而字元串實際上是以字元串數組的形式存儲,它是數組,而數組是不能直接用關系運算符比較大小的

Ⅳ c語言中,為什麼不能對字元指針變數指向的字元串再賦值

因為C語言中,凡是以""括住的形式直接出現,而且你又沒有為其分配內存空間的字元串都是常量字元串,是不能修改其值的。

這樣:

char a[6]="hello";

a[2]='c';

就可以了。

這里你為hello分配了一個長度為6的字元數組空間來存放。

(5)為什麼c語言不能用字元擴展閱讀:

給字元數組賦值的方法

1、定義的時候直接用字元串賦值

char a[10]="hello";

注意:不能先定義再給它賦值,如char a[10]; a[10]="hello";這樣是錯誤的!

2、對數組中字元逐個賦值

char a[10]={'h','e','l','l','o'};

3、利用strcpy

char a[10];

strcpy(a, "hello");

Ⅵ C語言中哪一個不能用作字元常量,為什麼

"1"

因為它是一個字元串……

Ⅶ 為什麼在C語言中,字元型不能用SCANF輸入,而是用GETCHAR

樓主你好,關於你問的這個問題在我初學C語言的時候也遇到過,不僅是一個人遇到,這是很多初學者都會遇到的問題~,當然,我不是說樓主大哥你是初學者~~~呵呵~~~~~~~這個問題曾經麻痹了很多人,開始我也是不知道是什麼原因,直到一次偶然的機會我才知道問題的所在~`
出錯原因如下:
當你輸入數據後 回車,數據才被函數「scanf()」讀入,問題
就出在這個「回車」上;在C裡面 回車 鍵是當兩個字元來用的:即
「回車」和「換行」;這樣一來,問題就來了;當你緊接著在
「scanf()」後面再來一句「scanf()」讀入一個字元的時候,
此時在第二個「scanf()」裡面讀入的不是你輸入的那個字元~~~ 而是那個使人忽略的 「回車」字元;
當然,要是你第二句「scanf()」不是輸入字元而是輸入數據的 話, 那就沒有此問題出現。
解決的辦法是在第二個「scanf()」語句前加一句getchar();
此處的getchar();就是用來吞噬掉前面的「回車」。
其實C語言不僅僅只有這個使人麻痹的問題,還有許多 是你自認為是對的語句,在你運行的時候會出現一些莫名其妙的錯誤,使人防不甚防。這又是C語言的一個不足之處。

Ⅷ C語言!幫我看看為什麼老是不能執行字元的輸入。

第二個scanf("%c",&s);把第一個scanf時輸入的回車讀入了,所以s是回車,然後按照你寫的判斷過程,非+、非-、非/ 則認為是乘,所以輸出的結果是 積

你可以把s的ASSIC碼輸出,會發現等於10也就是回車

解決辦法有多種,最簡單的是
把scanf("%c",&s); 改為 scanf(" %c",&s); // 百分號前加個 空格

Ⅸ 1 在計算機二級c語言中 為什麼不能用字元串常量對字元數組名進行整體賦值

語法規定的,字元串常量對編譯器來說只是個地址而已,字元串常量存儲在代碼段,不可被修改,你可以把字元串給一個字元串指針賦值,但是編譯器是不會幫你幫字元串的數據放到數組的空間內,這些要自己完成,或者調用memcpy內存拷貝將整塊的字元串復制過去

Ⅹ C語言為什麼不能直接可以定義多個字元串,就像int可以定義一定長度的數字,為什麼啊

沒有為什麼。C語言語法規定就是只有字元變數,沒有字元串這樣的變數。所以只能用數組,指針和宏定義。你要不服氣可以和發明C語言和制定C標準的人肛去。