当我们为数组myword的元素单独赋值时:
myword[0] = 'B'; myword[1] = 'y'; myword[2] = 'e'; myword[3] = '\0';
正如你可能想到的,这并不是一个实用的方法。通常给数组赋值,或更具体些,给字符序列赋值的方法是使用一些函数,例如strcpy。
strcpy (string copy) 在函数库cstring (string.h) 中被定义,可以用以下方式被调用:
strcpy (string1, string2);
这个函数把string2 中的内容拷贝给string1。string2 可以是一个数组,一个指针,或一个字符串常量(constant string)。因此用下面的代码可以将字符串常量"Hello"赋给mystring:
strcpy (mystring, "Hello"); 例如:
|
J. Soulie |
注意:我们需要包括头文件才能够使用函数strcpy
另一个给数组赋值的常用方法是直接使用输入流(cin)。在这种情况下,字符序列的值是在程序运行时由用户输入的。
当cin 被用来输入字符序列值时,它通常与函数getline 一起使用,方法如下:
cin.getline ( char buffer[], int length, char delimiter = ' \n');
这里buffer 是用来存储输入的地址(例如一个数组名),length 是一个缓存buffer 的最大容量,而delimiter 是用来判断用户输入结束的字符,它的默认值(如果我们不写这个参数时)是换行符newline character ('\n')。
下面的例子重复输出用户在键盘上的任何输入。这个例子简单的显示了如何使用cin.getline来输入字符串:
// cin with strings
|
What's your name? Juan Hello Juan. Which is your favourite team? Inter Milan I like Inter Milan too. |
在上面的例子中我们也可以用以下代码来读取用户输入:
cin >> mybuffer;
这种方法也可以工作,但它有以下局限性是cin.getline所没有的:
因此,建议在需要用cin来为数组输入字符串时,使用cin.getline来代替cin >>。