1樓:匿名使用者
關於printf("%c"a[i]);(如果把他換成printf("%s",a[i]);為什麼不能編譯?
回答: 編譯應該沒問題, 只是執行時必定錯誤.
字串指一串連續的字元型的儲存域. c語言的字串在操作時一般以0值字元標誌字串的尾字元(佔一個字元的儲存域,但不計入字串長度).
"%c"應該對應於字元型變數(當然字串中的一個字元也可以);"%s"應該對應於一個指向字串的指標變數.執行printf("%s",a[i]);時, 程式把字元a[i]的值作為字串指標來使用,當然就發生錯誤了. 如果寫成printf("%s",a)甚至printf("%s",&a[2])都是正確的.
另外, 用"%s"不用使用for迴圈, 一個printf("%s",a)即可輸出一個以空字元(0)結尾的字串; 而用for迴圈加printf("%c",a[i])的方式, 則是以字元方式輸出a這個字元陣列中全部10個字元, 即使這些字元不構成以空字元(0)結尾的字串.
由此看來字串必定是字元陣列, 而字元陣列裡儲存的不一定是字串. 字元陣列裡每一個元素都可以取-128~127的值, 無符號字元陣列裡每一個元素都可以取0~255的值. 而c語言中的字串所取的值是以0標誌結束的一串非零字元(即-128~-1, 1~127; 對應於無符號字元是1-255; 大多在可列印字元和有限的控制字元範圍內取值).
2樓:匿名使用者
你想要做的是
一次性讀進全部字元存入a
然後顯示把
那麼如下就行:
char a[10]; int i;
scanf("%s",a);
printf("%s",a);
3樓:匿名使用者
a[i]的意思是陣列a的第i個元素
printf("%s",);是輸出陣列形變數,所以出錯
4樓:匿名使用者
c語言裡字串和char *型別可以看作等價。
%c對應char型,%s對應char *型。
5樓:介康安
有區別我n年沒看c語言了
模糊記得字串是以某個特殊字元結束的,而字元型則不是
查一下書,應該都有介紹
6樓:匿名使用者
樓上所說正確
在c語言裡是沒有字串變數型別的
7樓:
因為 a[i] 是字元型變數 ...
c語言中關於字元型變數。
8樓:匿名使用者
因為字元都是用ascii碼錶示的,所以每個字元都對應一個數字,範圍從0-127.超多這個範圍會出錯
9樓:匿名使用者
正整數賦值實際上是以ascii碼的形式賦值
你可以查ascii碼錶,某個範圍內是正常字元
負整數賦值的話按溢位處理,溢位最後剩下的部分當作ascii碼。
10樓:匿名使用者
因為字元型變數佔8位二進數的空間,表達範圍為2的8次方(0-255),對於有符號型安符變數則為(-128-127),只要在這個範圍內的數值都可以用字元型變數,這裡你可能存在誤解,以為字元型變數就是普通字元,它只是儲存空間的概念。定義普通字元可用''括起來.
11樓:
a=48,printf(「%c」,a)
a='0',printf(「%c」,a)
48是字元0的asii碼值,比如a的asii碼值就是65。asii碼沒有負值。
舉個例子:把數字8轉化成字元型8,8+48或者8+'0'都可以。
常用字元與asii**的對照表。
12樓:高金山
c語言中的字元變數其實就是8位的整型變數,所以可以對它進行正整數賦值要得到正常的字元,必須賦值給它正常字元所對應的整數值每個字元對應的整數的數值,可以參見ascii碼錶由於char是8位的,若超過8位所表示的範圍,比如太大(超過255),會溢位的。
char型別的可以賦負值,unsigned char賦負值的話,會把負數當成很大的整數的
關於c語言中的字元比較!!
c語言中字元型和字串型的區別?
13樓:滄海雄風
char a; //字元型 只能接收一個字元
char a[10] //字串型 可以儲存十個字元
14樓:蒲青亦洪璟
字元型一般只能存放1個字元,字串可以存255個以內數量字元,字元陣列可以存放n格字元(數量自己定,但不能超過pascal語言的預設數量)
15樓:匿名使用者
字元型是單bai個字元字元du串是由字元型的單個zhi字元所組成的集合dao。字串回在c語言中表示為字答符型陣列哈。c語言中並沒用字串這種資料型別。
你用的編譯器是c++的,所以就有了字串這樣的型別哈。字元型在c中規定死了是一個位元組。而字串是多個位元組的。
16樓:匿名使用者
1、定義方式不相同字元:char c字串:char* s2、長度不相同,字元型只有一個字元,字串的長度大於等於1字元:
char c = 'w'字串:char* s = "wwww"
17樓:匿名使用者
字元型 是單個字元 後面沒有0 結尾 字串型 後面是有0結尾的
18樓:
容質與int相同,只是只有一個位元組。表示字元的ascii編碼使用其中的0~127,所以要明白字元型別(char)其實是一個一位元組整型,並不只用來表示字元。由於c中沒有字串型別,所以在處理字串時是利用字元型陣列來實現的,在字元型陣列中一個接一個地儲存字元的ascii編碼,並在最後一個字元後加一個'\0'表示這一串字元結束了,就形成所謂「字串」。
19樓:米嵐
字元是單個字元例如'a'
字串是字符集合像"asdfasdf"
c語言中字元型變數只能存放一個字元嗎?。。 200
20樓:教育仁昌
c語言中的字元型變數是存放字元型常量的變數,其取值是字元型常量,即單個字元,不能是字串。字元型變數的型別說明符是char。每個字元變數被分配一個位元組的的記憶體空間,因此只能存放一個字元。
字元值是以ascⅱ碼的形式存放在變數的記憶體單元之中的。
21樓:最亮眼de一顆星
char 型別 只能存放單個字元或字元常量( ascii 值) :
char c='a' 或者 char=65
表示將英文字母"a"儲存在 char 型變數 c 中
22樓:匿名使用者
是的,例如 'r'。如果想存多個字元,應使用字元陣列 (char s[100]) 或字元指標 (char *s) 。如果想得到字母,應將其減去 'a' (ch - 'a') 。
當然了,你也可以認為他是整數。
23樓:天選之徒啊
字元,也是一個數值,你用來存數值也行,不過不能太大,否則溢位
24樓:匿名使用者
當然是啊,要不為啥叫字元型呢
在c語言中,用關鍵字什麼定義字元型變數
25樓:
在c語言中,用關鍵字char定義字元型變數。
char用於c或c++中定義字元型變數,只佔一個位元組,取值範圍為 -128 ~ +127(-2^7~2^7-1)。c語言中如int、long、short等不指定signed或unsigned時都預設為signed,但char在標準中不指定為signed或unsigned,編譯器可以編譯為帶符號的,也可以編譯為不帶符號的。
26樓:
char ch; //定義 單個字元變數如字元'a'
char str[20]; //定義一個長度為20的字元陣列(字串)如字串"hello world"
27樓:匿名使用者
用 char a="a 來定義單個字元。
加入標頭檔案 ,可以用 string a='asdf'; 來定義字串
28樓:
如果是c語言直接用char
如char a;
如果是c++的話有兩個,分別是char 和string如char a;//單個字元
string str;//一個字串
29樓:匿名使用者
字元型變數用char來宣告,如 char c;
30樓:
找本好書吧,先自己看了再問比較好,這知識點書上都有的。
31樓:匿名使用者
char c = 'a';
關於C語言中中的規則,關於C語言中和的用法
如果你的函式裡用的是指標形式,那麼在你的函式呼叫的時候就要用 形式了,具體你參考譚浩強的c語言書,裡面有更全的解釋,不好,還望採納 關於c語言中 和 的用法 和 都是邏輯表示式裡常用的,一般用法是 if 表示式1 表示式2 或者 if 表示式1 表示式2 表示 或 滿足其中一個,整個表示式就為真,就...
C語言中什麼是字元型資料?如何宣告
char型別 一半情況下佔用8位,分為signed和unsigned,在計算機中全都以ascii值表示,signed char 有符號字元型 長度 位元組 為1 128 127 unsigned char 無符號字元型 長度 位元組 為1 0 255 書中基本只給到0 127 char c a ch...
C語言特殊字符集有哪些 C語言中的特殊字符集
屬於 c 語言中的操作運算子,如下圖所示 按位與 比如3 2 2相當於 求餘數,比如3 2 1 按位右移 比如3 1 1 0000 0011 1 0000 0001 低位移除,高位補零。按位左移,比如1 1 2 0000 0001 1 0000 0010 高位溢位,低位補零。比如象 這些根本不叫字元...