c語言如何輸入數組?
在C語言中,有兩個函數允許用戶從鍵盤輸入數組數據。它們是gets()和scanf()。Scanf()是通過格式控制器%s輸入的數組字符串。除了字符串,還可以輸入其他類型的數據。Gets()是直接輸入數組字符串,只能輸入字符串。
但是,scanf()和gets()是有區別的。
Scanf()讀取由空格分隔的字符串。當它遇到空格時,就認為當前字符串結束了,所以無法讀取包含空格的字符串。
Gets()認為空格也是字符串的一部分,只有當遇到Enter鍵時,字符串輸入才結束。所以不管輸入多少個空格,只要不按回車鍵,就是gets()的完整字符串。換句話說,gets()用于讀取一整行字符串。
例如:
一個
2
三
四
五
六
七
八
九
10
11
12
13
14
15
16
17
18
#包含ltstdio.hgt
intmain(){
charstr1[30]{0}
charstr2[30]{0}
charstr3[30]{0}
//獲取()用法
printf(#34輸入一個string:#34)
獲取(str1)
//scanf()用法
printf(#34輸入一個string:#34)
掃描f(#34%s#34,str2)
掃描f(#34%s#34,str3)
//單獨輸出
printf(#34
str1:%s
#34,str1)
printf(#34str2:%s
#34,str2)
printf(#34str3:%s
第34位,str3)
返回0
}
運行結果:
一個
2
三
四
五
輸入一個string:CCJavaPython
輸入一個string:PHPJavascript
str1:CCJavaPython
str2:PHP
str3:Javascript
第一個輸入字符串由gets()讀取并存儲在str1中。第二個輸入字符串,在前半部分由第一個scanf()讀取并存儲在str2中,后半部分由第二個scanf()讀取并存儲在str3中。
注意,scanf()讀取數據時,需要數據的地址,地址是常數,所以對于int、char、float等類型的變量,要在前面加amp來獲取它們的地址。但是在這段代碼中,我們只給出了字符串的名稱,但是我們沒有不要在它前面加amp。為什么?因為字符串名或者數組名在使用過程中通常會轉換成地址,所以加amp是多余的,甚至會導致錯誤。
就目前所學的知識來看,int,char,float等變量。在scanf()中使用時應該在前面加amp,而在scanf()中使用數組或字符串時不加amp,它們自己會轉換成地址。讀者必須記住這一點。
至于數組名(字符串名)和地址的轉換細節,以及數組名什么時候會轉換成地址。
以上是C語言數組的輸入方法。詳細的
如何比較兩個PHP多維數組?
確定兩個多維數組是否相等,或者哪些元素不同。我們可以通過PHP中的array_udiff()函數和create_function()方法、strcmp()等函數來實現比較。
讓下面用具體的代碼例子介紹比較兩個二維數組的方法。
代碼示例如下:
一個
2
三
四
五
六
七
八
九
10
11
12
13
lt?服務器端編程語言(ProfessionalHypertextPreprocessor的縮寫)
//多維數組比較
$color1數組(數組(紅色,80),數組(綠色,70),數組(白色,60))
$color2數組(數組(綠色,70),數組(黑色,95))
$colorarray_udiff($color1,$color2,create_function(
$a,$b,返回strcmp(內爆(
使用array_walk、array_map等函數自定義比較函數。
交集、差集和并集。