關於c c 陣列沒有給陣列長度輸入的問題

2021-10-02 08:41:19 字數 1168 閱讀 5936

最近敲的**題都是關於要把資料輸入陣列進行操作但是沒有陣列長度的問題,每次都要自己搜尋很多才能找到結果,於是決定自己來總結一下,希望能給廣大網友幫助。

首先,先講兩個經常用的輸入。

cin 和gets:

cin是任何都可以直接cin,但是cin遇到空格和回車都會停止。

比如如果乙個字串要輸入到陣列中,如果字串是abcdefg

那麼可以

那麼陣列就會是abcdefg,如果是字串以空格分隔,那麼用上面的方式陣列中只有a。大部分情況整數用cin。

gets是字串輸入時專用的,只有回車的時候會停止,字元之間有空格或者其他字元分隔都會保留在陣列中,例如剛剛的例子陣列內容是abcdefg,以空格分隔,我們寫如下**:

那麼結果將是a b c d e f g。

接下來將介紹乙個輸入getchar();這個輸入是針對字串的,本意就是乙個乙個字元輸入,遇到回車就會停止輸入。

這個輸入切忌輸入數字,那麼就有同學會問呢?你前面已經說了這個是用來輸入字串的,那你何必要再重點強調一下不能輸入數字呢?

我們知道,因為有ascall碼表,字元和數字是能相互轉化的

那麼我們數字陣列無法處理的時候,也可以定義成字元陣列做,那麼為什麼不能用getchar()呢?

比如,我舉個例子。13 14 15 16 17

那麼用getchar()是乙個字元乙個字元的取,那麼陣列裡就變成了1 3 後面結果大家都能知道了

有很多同學特別煩沒有陣列長度,要輸入一串數字到陣列中,數字之間用空格或者其他字元隔開,cin 和 gets都有些許的不便

這裡筆者提供一種自己發現的萬能解決方案 (這裡筆者以一串數字中間以逗號分隔為例)**如下:

C C 陣列長度的獲取

在c 裡,字串長度可以用strlen 函式獲取,但是c 不支援陣列的長度直接獲取,所以我們要用陣列的大小來計算出它的長度 主要是根據程式執行時給定義的變數分配記憶體大小是固定的,我們用sizeof 獲取變數大小,比如 int型陣列就用陣列大小除以單個int變數的大小,這樣就能得到陣列的長度。c 中我...

C 陣列長度

初學c 到陣列的時候想手動寫一下迴圈輸出陣列內容的簡單迴圈,int arrayint 1,2,3,4,5 for size t i 0 i 結果發現輸出內容不對,i的值遠遠比size大,於是查資料了解一下sizeof是什麼作用 sizeof是乙個操作符 operator 其作用是返回乙個物件或型別所...

求陣列長度

c 求陣列長度為 int arr length sizeof arr sizeof arr 0 為了方便使用,在c語言中常定義巨集來求陣列長度 define arr len array,length 使用時,直接呼叫巨集函式即可,如 int arr int len arr len arr,len 此...