1樓:匿名使用者
第一 str不是首地址 為什麼可以進行自加答:str是指向首址的指標,
第二為什麼要str[1]='\0'呢。。。。
答:字串是以數字0為結束。
如果不同 將其插在串的最後
,那 這個程式的if判斷有誤。
2樓:僪巧苼
初看函式,想實現的是在字元陣列str中查詢字元ch,查詢到了則將ch設為字元陣列的截止字元。
char string[10] = "hello,world!";
char ch = 'w';
操作後printf("%s\n", str)輸出為hello,w
看**:
while (*str&&*str!=ch)
迴圈退出要麼是尋遍str(假若字元陣列最後字元為'\0'的話,中途某個字元為'\0'的話則中途退出)退出,要麼是中途找到ch退出.
後面的*str==ch則是判斷退出是上述兩種中的哪種,若是後一種則進行上述操作,若是前一種什麼也不做。
兩個問題 第一 str不是首地址 為什麼可以進行自加 不是首地址的值是不變的嗎
str不是首地址》str是陣列的首地址
為什麼可以進行自加 不是首地址的值是不變的嗎》這個陣列名是作為形參變數的,不是常量當然可以自加,而char string[5] = ; string++; 這裡的string++是非法的,因為string是常量。
第二 後面的那個if程式表示不同 如果不相同 str所指的也不一定是最後一個字元啊 而且 為什麼要str[1]='\0'呢
後面的那個if程式表示不同 如果不相同 str所指的也不一定是最後一個字元啊 >>>程式能執行到if(*str==ch) 這個判斷表示陣列中找到ch,而str[0]=ch; str[1]='\0'這裡的str[0],str[1]不是原陣列的第一個第二個元素,而是ch在str中的那個ch和它後面的字元
而且 為什麼要str[1]='\0'呢》字串操作時以'\0'為結束字元的,printf列印字串是以這個作為列印截止點的。
跪求C語言高手解答,跪求高手解答
queuecque 佇列 定義了一個物件 char 型別的 cque cin c 類似於c的scanf 從標準輸入讀取一個資料寫入c cque.push c cque是模板佇列類的一個物件,呼叫他的push函式將c插入佇列中 cout cque.front endl 表示輸出佇列前面的一個資料 cq...
c語言我是C語言菜鳥,跪求高手幫忙找找這個程式的錯誤
include int max int x,int y 函式原型最好放在這裡即include之後,main之前 void main int max int x,int y 這裡是不能加分號的,因為下面還有語句啊。譚浩強的c語言書不錯,綠色封面的。你可以看看!scanf d,d,d a,b,c int...
跪求C語言高手解釋思路和程序謝謝了
include int main 傻瓜辦法 將四位數分化成4個變數,每個變數存一位數 蠻簡單的啊,就是求個和,然後 再賦值麼,交換的話再引入新的變數來幫助交換 你說的不是很清楚,但是可以肯定這個程式寫起來不難!用到迴圈語句和一些基本的語句就可以了 思路 先把 數 x 的每一位分別存入陣列w 10 中...