c語言字元型問題,C語言字元型問題

時間 2022-02-03 06:00:03

1樓:匿名使用者

1、字元型(character)資料是不具計算能力的文字資料型別,用char表示。它包括中文字元、英文字元、數字字元和其他ascⅱ字元,其長度(即字元個數)範圍是0-254個字元。

2、字元型變數是用來儲存單字元的一種變數:如:char a='a'; 而字串就是用來保佑多個字元的變數,c語言中用字元陣列來表式一個字串 如:

char name=。字元和字串的區別在於是用雙引號,還是單引號,雙引號表字串,單引號表字元,如:"a"和'a' 第一個是字串,而第二個是字元。

2樓:匿名使用者

字元長度是一位元組 帶符號 範圍也就是-128~127,也就是你定義一個字元變數的時候他的值範圍是這個 注意是變數 而ascii碼是字元常量對定的,就是ascii是一些固定的字元常量對應在計算機中的儲存,比如鍵盤上面的一個輸入鍵 比如你定義char a='a'; 這裡a只是個變數名,他的值是'a',也就是ascii 碼65char a=-'a';這裡a在計算機中的儲存則是-65 就是1(這裡接65的二進位制表示)但是 要是你定義char a='a'+'a';則會報錯 因為a的值超出了127定義 unsigned char a='a'+'a';則是正錯的,因為a的值沒有超出範圍 不知道這樣你理解了嗎

3樓:匿名使用者

有符號char的數值範圍是-128~127,可是字元的ascii碼怎麼會沒有負數的呢?自己編個**看看有沒有吧,將整型(正負)轉換為字元型,我只知道字元值有255個,是什麼字元我就不記得啦!有一些字元時不可列印的,你要知道這個東西。。。。

至於unsigned char ,也編個看看吧,要記住用無符號字元型。

4樓:匿名使用者

ls說的很對,lz告訴你一個容易理解的:int與char通用

c語言問題字元加減操作

5樓:匿名使用者

我沒有給你解答出來 但是我發現了你的程式一個小錯誤自定義函式

void nz(char *s)//將字串逆置}你忽略了改字元陣列個數的奇偶問題了

我的如下稍有改動

void nz(char *s)//將字串逆置}if(l%2==0)

for(i=0;i==j;i++)

}希望對你有所幫助!

6樓:匿名使用者

首先:你的這個程式,沒有處理a==b的情況,這一個需要加上;其次、你的輸出有問題,你的陣列h[max+1]是字元型的,你卻用整形輸出,這顯然是不對的。還有,判斷裡面的迴圈有問題:

h[i]=s[i]+r[i],應該改寫為:h[i]=s[i]+r[i]-'0';還有、滿十進一那最好寫成加一個常數c=1;還有最後一點:最後的輸出應該寫成,printf("%c",h[k-1]);把我說的這些改了就ok了。

我已經改好了,祝你成功!

7樓:水晶扇

nz函式是沒有問題的。

其他的我在除錯中,稍等

第一種方法,按字元進行計算:

#define max 1000

/*1. 大整數加法計算兩個整數m、n的和,0<=m,n<=10的50次方。

輸入輸出格式:本題只有1組輸入資料,每組資料只有1行,每組資料包含兩個0到10的50次方之間的大整數,兩個整數中間用1個空格分隔。

對於每組資料,輸出一行,表示兩個大整數的和。*/void nz(char *s)//將字串逆置}}else if(a'9') //字元判斷》=10的方法是》'9'}}puts("\n");

for(k=((a>b)?a:b);k>=0;k--)}

c語言中關於字串長度的問題

8樓:幻形術

char str; //這是錯誤的,沒有初始化列表時必須指定陣列長度。

char str[10]; //指定了長度為10,不過沒有初始化,所以10個元素值是偽隨機值

char str[10] = ; //指定了長度為10,對每個元素都初始化了

char str[10] = ; //指定了長度為10,顯示初始化了前面幾個元素,後面的元素預設為0

char str = ; //沒有指定長度,但有初始化列表,陣列長度由初始化列表元素個數決定,所以長度是10

9樓:

不,若不在填數字,就必須在初始化這個str,在等號右邊寫具體資料,有幾個資料,編譯器就自動在中填幾了。所以char str這樣寫是錯誤的,要寫成char str=;這樣的形式,編譯器就會認為中是3了。另,char型陣列還可以char str="1234567";這樣來定義,但這時中並不是7而是8,原來編譯器把str作為字串對待了,要在7後自動加一個結束符'\0'。

10樓:戈恆史樂

1.a2.b

3.\034

表示八進位制34所代表的ascii碼字元

4.\\

表示一個\

5.\x79

表示16進位制79所代表的ascii碼字元

所以長度為5

1.a2.\045

ascii碼為八進位制45的字元

3.空格

4.05.4

6.57.\'

表示一個單引號8.b

11樓:璩楚華橋

第1個輸出是8

10。sizeof運算子得到的是陣列的佔用位元組的大小,在定義陣列a的時候沒有指明大小,編譯器根據初始化的內容來決定a的大小,"abcdefg"是個字串,連同表示字串結束的'\0'共有8個字元,1個字元型別佔用1個位元組,所以sizeof(a)是8。在定義陣列b的時候已經指明瞭大小,所以sizeof(b)是10。

第2個輸出是5

20。strlen函式是計算字串的長度,字串以'\0'表示結束,所以strlen在遇到hello後面的'\0'時就會返回。sizeof跟第1個問題一樣。

12樓:

錯誤有兩個!

1.char型的字元變數a只代表一個字元,不能代表一個字串。

2.用scanf輸入字串時,出了個控制符要用%s外,後面的應是個地址。若a是個字元陣列,應該用a,而不是&a。況且用scanf輸入時不能輸入空格。

你可以這樣編:

#include

#include

void main()

visual c++編譯通過,希望能幫助你

13樓:匿名使用者

你的**出現問題的原因是scanf("%s",&a); ,a是一個char型別的變數,系統為它分配了一個位元組的記憶體空間,但是你卻輸入了一個字串到以a的地址為首地址的一段連續的記憶體空間裡,這樣就出現了越界錯誤.但是printf函式並不檢查越界錯誤,它會按正常的方法執行,然後程式統計出長度,列印出來結果.但是返回到呼叫main函式的作業系統後,系統會發現越界錯誤,所以在結果顯示出來後才出錯.

至於你說的輸入5個以下不會出錯,也許是偶然,也許跟你的編譯器有關.我用vs2005測試,只要輸入就會出錯。

如果你是隻想求出輸入的字串的長度而不要求儲存輸入的字串,下面的**更好。你的標準輸入緩衝區有多大,那麼它就可以求出多長的字串的長度,不會有越界。

#include

int main()

14樓:

#include

main() 這樣

15樓:在太平塔笨豬跳的三角楓

#include

main()

編譯通過.

c語言字元陣列與字串問題

16樓:渿河

這是在定義時初始化 如果你的右邊花括號內的字元個數少於【陣列元素個數】 那麼其餘的陣列元素將會初始化為0 , 』\0'的ascii碼的值就是0 ;

如果你不指定陣列元素個數 編譯器會自動幫你計算出元素個數的

17樓:

char c[10]=;這個是已經給定了陣列的大小,達不到陣列大小的長度的話會自動添零的

c語言字元型變數的問題

18樓:匿名使用者

答案是c!第一個選項兩個單引號之間有兩個字元,這樣的寫法是錯的!第二個和第四個是雙引號代表字串,第三個選項賦給他整型97,就是賦給他碼為97的那個字元,所以是對的!

19樓:匿名使用者

正確答案c,

分析:a,絕對錯誤, c只能容納一個字元,'97'這是一種語法錯誤,沒有這種寫法

b,錯誤,c只是一個字元變數,不能容納一個字串指標的地址d,錯誤同b

c,你可以理解為將數值97轉換為ascii對應為97的字元'a'然後賦值給c

20樓:匿名使用者

選a 啊 字元變數的賦值要單引號

21樓:

汗噠噠...

應該是 c

字元在記憶體中的存放方式都是轉變成一個整型數 也就是所謂的ascii碼小寫a的ascii碼值為97 所以你給一個字元型變數一個整型數字 列印時 它就會用ascii碼轉換成相應的字元了

a 為什麼錯了呢? 因為 97 被認為是2個字元 也就是字串 變數c只會接收第一個數字 9

b 字串賦值 錯

d 同b

22樓:跌落的殘片

c每個字元都有個編碼

23樓:匿名使用者

a..給字元型變數賦值

C語言字串問題,C語言字元陣列與字串問題

字串初始化,如果逐個賦值的話,系統不是會自動新增 0 嗎不是。圖一就是長度為4的陣列,圖二長度為5圖三會是新增 0,但是是會把後面所有的都設為 0因為圖一和圖四不以 0結尾,所以不能用strlen和strcmp,會越界 圖四也可以用char str 4 stop 這樣賦值。如果不手動加長度就會是5了...

C語言字元陣列與字串問題,C語言中將字串賦值給字元陣列的問題

渿河 這是在定義時初始化 如果你的右邊花括號內的字元個數少於 陣列元素個數 那麼其餘的陣列元素將會初始化為0 0 的ascii碼的值就是0 如果你不指定陣列元素個數 編譯器會自動幫你計算出元素個數的 char c 10 這個是已經給定了陣列的大小,達不到陣列大小的長度的話會自動添零的 c語言中將字串...

c語言怎麼加密字元,C語言怎麼加密字元

自我程式設計 我沒注意只要小寫,我寫的是大小寫都可以的,另外附送輸入驗證。include include int main else printf 原字串為 s n加密後的字串為 s n str,str2 return 0 c語言本身是不能加密字元的,但你可以寫一個加密程式來加密。為敘述方便,不妨設...