找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 6313|回復(fù): 28
打印 上一主題 下一主題
收起左側(cè)

關(guān)于C語言中的字符串?dāng)?shù)組中的問題

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:329253 發(fā)表于 2018-5-30 15:26 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
想問問大家就是比如
定義一個字符串?dāng)?shù)組例如:
char a[]="abcde"
想問問這里 具體有幾個元素啊?不是應(yīng)該有六個嗎?還有一個\0
可是打印的時候為什么不行呢。
打印%d的時候也并不出現(xiàn)這個空字符對應(yīng)的ASCII值0

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:223470 發(fā)表于 2018-5-30 15:41 | 只看該作者
這樣寫的話是6個元素,如果你寫char a[5]=“abcde”就是五個元素,你可以使用sizeof函數(shù)查看這個數(shù)組大小。

評分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復(fù)

使用道具 舉報

板凳
ID:321742 發(fā)表于 2018-5-30 15:41 | 只看該作者
        int i;         char a[]="abcde";         for(i=0;i<sizeof(a);i++)                 printf("%d\t",a[i]);

評分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復(fù)

使用道具 舉報

地板
ID:341446 發(fā)表于 2018-5-30 15:48 | 只看該作者
就6個元素啊,\0它所的意義是“字符串結(jié)束符”,因此當(dāng)把一個字符串存入一個數(shù)組時,也把結(jié)束符'\0'存入數(shù)組,并以此作為該字符串是否結(jié)束的標(biāo)志。有了'\0'標(biāo)志后,就不必再用字符數(shù)組的長度來判斷字符串的長度了。

評分

參與人數(shù) 1黑幣 +40 收起 理由
admin + 40 回帖助人的獎勵!

查看全部評分

回復(fù)

使用道具 舉報

5#
ID:341446 發(fā)表于 2018-5-30 15:49 | 只看該作者
字符串總是以'\0'作為串的結(jié)束符。因此當(dāng)把一個字符串存入一個數(shù)組時,也把結(jié)束符'\0'存入數(shù)組,并以此作為該字符串是否結(jié)束的標(biāo)志。有了'\0'標(biāo)志后,就不必再用字符數(shù)組的長度來判斷字符串的長度了。

評分

參與人數(shù) 1黑幣 +40 收起 理由
admin + 40 回帖助人的獎勵!

查看全部評分

回復(fù)

使用道具 舉報

6#
ID:321742 發(fā)表于 2018-5-30 15:49 | 只看該作者
運行下試試吧。
int i;
char a[]="abcde";
for(i=0;i<sizeof(a);i++)
    printf("%d\t",a[i]);

評分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復(fù)

使用道具 舉報

7#
ID:329253 發(fā)表于 2018-5-30 16:16 來自觸屏版 | 只看該作者
timelessxp 發(fā)表于 2018-5-30 15:41
這樣寫的話是6個元素,如果你寫char a[5]=“abcde”就是五個元素,你可以使用sizeof函數(shù)查看這個數(shù)組大小。

試過了,確實是六個,但是為什么我用printf打印數(shù)組中的字符時,只會出現(xiàn)五個呀?
回復(fù)

使用道具 舉報

8#
ID:329253 發(fā)表于 2018-5-30 16:17 來自觸屏版 | 只看該作者
wklhwkl 發(fā)表于 2018-5-30 15:41
int i;         char a[]="abcde";         for(i=0;i

是六個元素,但是為什么用printf打印數(shù)組中的元素時只能打印出來五個呀?用%d形式打印的,怎么不出現(xiàn)這個0呢?
回復(fù)

使用道具 舉報

9#
ID:329253 發(fā)表于 2018-5-30 16:17 來自觸屏版 | 只看該作者
ynit 發(fā)表于 2018-5-30 15:48
就6個元素啊,\0它所的意義是“字符串結(jié)束符”,因此當(dāng)把一個字符串存入一個數(shù)組時,也把結(jié)束符'\0'存入數(shù) ...

是六個元素,但是為什么用printf打印數(shù)組中的元素時只能打印出來五個呀?用%d形式打印的,怎么不出現(xiàn)這個0呢?
回復(fù)

使用道具 舉報

10#
ID:329253 發(fā)表于 2018-5-30 16:18 來自觸屏版 | 只看該作者
wklhwkl 發(fā)表于 2018-5-30 15:49
運行下試試吧。
int i;
char a[]="abcde";

是六個元素,但是為什么用printf打印數(shù)組中的元素時只能打印出來五個呀?用%d形式打印的,怎么不出現(xiàn)這個0呢?

評分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復(fù)

使用道具 舉報

11#
ID:223470 發(fā)表于 2018-5-30 20:05 | 只看該作者
\0是說明這個數(shù)組結(jié)束了,和你打印\r\n一個道理,就是描述符而已。
回復(fù)

使用道具 舉報

12#
ID:321742 發(fā)表于 2018-5-31 11:52 | 只看該作者
134849694164151 發(fā)表于 2018-5-30 16:18
是六個元素,但是為什么用printf打印數(shù)組中的元素時只能打印出來五個呀?用%d形式打印的,怎么不出現(xiàn)這個 ...

你是說 printf("%s",a)  這樣輸出嗎? 如果是這樣的話,  %s是以'\0'結(jié)束的。  比如有一個字符串是 "123\0abcd"  你這樣輸出也是只打印出123。
回復(fù)

使用道具 舉報

13#
ID:342182 發(fā)表于 2018-5-31 14:54 | 只看該作者
\0是結(jié)束標(biāo)識,在存儲上要占用一個字節(jié),但是操作的時候到它就停止了,因此只能看到5個
回復(fù)

使用道具 舉報

14#
ID:342236 發(fā)表于 2018-5-31 15:45 | 只看該作者
\0是結(jié)束標(biāo)識是看不到的。

int i;
char a[]="abcde";
for(i=0;i<sizeof(a);i++)
     printf("%d\t",a[i]);
回復(fù)

使用道具 舉報

15#
ID:343956 發(fā)表于 2018-6-3 16:28 | 只看該作者
只有一個元素,\0僅表示一個字符串結(jié)束的標(biāo)志,是不會打印出來的。
回復(fù)

使用道具 舉報

16#
ID:344758 發(fā)表于 2018-6-4 16:33 | 只看該作者
應(yīng)該是有6個
回復(fù)

使用道具 舉報

17#
ID:343894 發(fā)表于 2018-6-4 22:53 | 只看該作者
\0打印顯示不出來,但是占1個字節(jié)內(nèi)存
回復(fù)

使用道具 舉報

18#
ID:345991 發(fā)表于 2018-6-6 11:11 | 只看該作者
\0是字符串結(jié)束符,你用sizeof函數(shù)時可看出占用一個字節(jié),但在系統(tǒng)終端默認(rèn)打印時不予顯示。也可以用strlen函數(shù)檢驗
回復(fù)

使用道具 舉報

19#
ID:346107 發(fā)表于 2018-6-6 13:46 | 只看該作者
占用6個內(nèi)存空間,應(yīng)該是5個元素的,\0是字符串結(jié)束符
回復(fù)

使用道具 舉報

20#
ID:346273 發(fā)表于 2018-6-6 16:55 | 只看該作者
結(jié)束標(biāo)識如果能看到那所有打印內(nèi)容都會有\(zhòng)0了,很不方便
回復(fù)

使用道具 舉報

21#
ID:346355 發(fā)表于 2018-6-6 18:29 | 只看該作者
\0是標(biāo)識符,遇到它就結(jié)束了所以不打印了,我是這么理解的
回復(fù)

使用道具 舉報

22#
ID:346429 發(fā)表于 2018-6-6 20:20 | 只看該作者
\0就是不會在printf出現(xiàn)啊,它只是一個結(jié)束符
回復(fù)

使用道具 舉報

23#
ID:346546 發(fā)表于 2018-6-6 22:44 | 只看該作者
第六個不顯示只是標(biāo)志著結(jié)束
回復(fù)

使用道具 舉報

24#
ID:346767 發(fā)表于 2018-6-7 10:53 | 只看該作者
printf打印數(shù)組中的字符時,只會出現(xiàn)五個,第6個是\0,顯示不出來什么
回復(fù)

使用道具 舉報

25#
ID:348456 發(fā)表于 2018-6-9 22:02 | 只看該作者
字符串?dāng)?shù)組后面沒有\(zhòng)0,string后面有\(zhòng)0
回復(fù)

使用道具 舉報

26#
ID:348525 發(fā)表于 2018-6-9 23:51 | 只看該作者
6個。。。。。。。。。。。。
回復(fù)

使用道具 舉報

27#
ID:348550 發(fā)表于 2018-6-10 02:10 | 只看該作者
\0是結(jié)束符吧
回復(fù)

使用道具 舉報

28#
ID:348657 發(fā)表于 2018-6-10 11:35 | 只看該作者
5個,\0只是一個表示符,只要你錄入字符串他會自動給你加上\0,他占用空間,但是不算在元素中
回復(fù)

使用道具 舉報

29#
ID:390775 發(fā)表于 2018-9-4 17:15 | 只看該作者
應(yīng)該是  6個 你可以用 sizeof看下 它占用了多少個字節(jié)  如果是用printf(“%d\n”,a);打印的是數(shù)組 首元素地址 不會打印 數(shù)組元素?次覍懙拇a,和運算結(jié)果。

回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表