2013-02-23 84 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

如果您需要打印每个输入的字符相同的次数,为什么来存储所有?它会浪费内存,只存储一个字符并打印任何需要的次数,所以我猜,单个数组就足够了。但这种方法是我从你的问题了,如果有一些限制请不要共享或更好的共享代码...

相关问题