2013-02-23 82 views
1

我想要用戶只輸入一個字符,說'Y',然後我想Y被存儲在數組的每個元素(即:數組[9]),以便當我打印它會像'YYYYYYYYY' ,或者當它是一個二維數組(即:數組[2] [2]),它看起來像:如何在C++中將一個字符的用戶輸入存儲到數組的每個元素中?

YYY 
YYY 
YYY 
+1

存儲和打印是兩個不同的問題;所以哪一個你有問題,你試圖解決什麼問題? – 2013-02-23 09:20:28

回答

0

您可以使用memset()<cstring>,或std::fill()<algorithm>。所以對於一個char array[9];,你可以這樣做:

memset(array, 'Y', 9); 

或:

std::fill(array, array + 9, 'Y'); 

對於一個二維數組,你會單獨設置每一行。

小心使用memset()時,因爲長度是以字節爲單位給出的,而不是在元素中給出的。如果您有int陣列,例如,memset(array, 'Y', 9)不起作用。 std :: fill()沒有這個問題。

+0

我不這麼認爲:'memset(array,'Y',9 * sizeof(int));'將會做你想要的。 ASCII「Y」的字節值是0x59,對於32位整數的系統,你的int值將變爲0x59595959或1499027801.你一定要使用std :: fill ()'作爲正確的選擇。 – WhozCraig 2013-02-23 10:24:40

+0

@WhozCraig確實。 – 2013-02-23 10:34:13

+0

謝謝!這就是我一直在尋找的。 – Clark 2013-02-24 03:51:52

1

如果您需要打印每個輸入的字符相同的次數,爲什麼來存儲所有?它會浪費內存,只存儲一個字符並打印任何需要的次數,所以我猜,單個數組就足夠了。但這種方法是我從你的問題了,如果有一些限制請不要共享或更好的共享代碼...

相關問題