1樓:智_囊_小_太
對於bai這個程式,strcat函式把s2綴合到s1上。du此時s1比s2的有效zhi
字元長度要長,接下來dao的步驟是讓專s2的字元對應與截止到屬s1的空字元之前的所有對應位置的字元同步(不包括s1的空字元),而由於s1比s2長,所以導致s2被同步後,並不正確地以空字元結束,如果不對s2做結尾處理,則在接下來的puts輸出的時候會輸出奇怪的東西。
例如s1(假定字串不含空格)是:a c j l \0
s2:b c s \0
strcat之後的結果會使得s1變成:a c j l b c s \0
迴圈之後會使s2變成:a c j l b c s ? ? ? ?...(後面全是)
其中問號是未定義的值,不一定是什麼字元。
如果不s2[i]='\0'那麼puts的輸出就是:acjlbcs(後面還有一大堆亂七八糟的東西)
而做過處理後,輸出結果就是正常的acjlbcs望採納
c語言中s[i]!='\0'有什麼作用?
2樓:我是果瘋
s[i]!='\0'一般為建立乙個字串陣列後,判斷字串是否輸入完畢,常用在迴圈或者判斷語句。回
c語言中,字串答
可以賦值給字元指標變數,或者將字串用字元陣列儲存。因為c語言沒有直接對字串提供語法方面的支援。而且c標準庫很多方法處理字串是以空字元結尾為前提的,這個必須要記住。
3樓:天雲一號
s[i] != '\0'用來判斷字元s[i]是否是字元陣列s中的結束位元組'\0'
可以用來完成對字元回陣列或字串的一系答列操作,如計算字元個數等。
下面舉例來說明其用法:
char s = "abcdefg"; // 定義乙個字元陣列,且初始化為"abcdefg"
int i=0;
while(s[i] != '\0') // 如果字元s[i]不是字元陣列s中的結束位元組'\0',則執行下面語句
4樓:匿名使用者
'\0'是一般字串語句中的結束符號,s[i]!='\0'就是判斷是不是字串結束了,沒結束做相應處理
5樓:匿名使用者
\0'是一般字串語bai句中的結束符號,dus[i]!='\0'就是判斷是zhi不是dao字串結束了,沒結束做相內
應處理容.
實際上直接填入數字0也能達到同樣效果。
char buf[3]= ;可以用strlen看看長度是多少。
6樓:匿名使用者
如果s[i]
取值為 『0』 -- 『9』
s[i]=s[i]-'0'
執行後結果為s[i] 等於 0 - 9
c語言 最後 s[j]='\0'; 這步是什麼意思?為什麼加這步?
7樓:匿名使用者
這是陣列結束的標誌,輸出時%s輸出到『\0』就停止了,不然系統不知道要什麼時候停止,可能會輸出亂碼的
8樓:匿名使用者
'\0'是字串的結束符,乙個字串遇到 '\0'就會截斷。
9樓:匿名使用者
所有的字串都是以\0結尾。表示字串末尾。
10樓:好嘞啊啊啊啊
字串特有的結尾標誌
不然printf("%s",s); 輸出不了字串
c語言習題求s2解答過程,為什麼這道c語言題要加 s2 i 0 ???
你只要懂 a a b 是怎麼意思就可以了 a 是先用在加 b是先加在用 好想是,自己查一哈 a b等價於a a b 由於巨集替代,s1 min a b,b a s2 t a a b,a b c 會被替換成 s1 a b s2 a a b c a b 4 我們來分析第乙個s1,s1 a b 由於b不會...
c語言題目。為什麼這個選a,C語言這道題為什麼選a
雙引號括起來的叫做字串,字串除了雙引號中的字元外還包括結束標記 0 因此陣列x和y的內容是完全一樣的。char是字元型的意思,x等於 12345 這個整體字元,而y則等於 1 2 3 4 5 這些單個字元的組合,0 是結束的意思。c語言這道題為什麼選a?1 整型常數,預設是int型別。要寫長整型,必...
C語言為什麼輸出的是7 0啊,C語言 7 0,為什麼
字元 hex dec 0 0x00 0 從數值上說上面三個是相等的 0 0x30 48 請lz注意他們的區別 你可以這樣理解strlen 函式的實現 int strlen char str 定義的x是字元型陣列名,但在c語言中字元型變數可以被賦予整形資料,字串裡遇到結束符0 0 就會結束,不管後面是...