char temp[100]; //创建一个足够大的缓存
char *data; //你要得到的相应长度的数组
int length; //长度
scanf("%s",temp); //先保存在缓存中
length = strlen(temp); //得到长度
data = (char*)malloc(length)); //创建等于输入长度的空间
memcopy(data,temp,length); //复制到新开的空间
用cin输入字符串的作用与scanf类似,但更方便。例如,假定s1定义还与前面一样,执行下面的语句:
cin << s1;
输入输入字符串"Learn C++",s1的值与用scanf的结果是一样的。如果一个字符串中有空格,我们就需要在空格的地方将字符串分成二个或多个字符串输入。例如,某人名字为"Ian Aitchison",我们可以用下面的语句输入:
char firstname [12], surname[12];
cout << "Enter name ";
cin >> firstname;
cin >> surname;
cout << "The name entered was "
<< firstname << " "
<< surname;
执行上面的语句,输入"Ian Aitchison",输出结果如下:
The name entered was Ian Aitchison
上面的程序段我们也可以修改为,效果是一样的:
char firstname [12], surname[12];
cout << "Enter name ";
cin >> firstname >> surname;
cout << "The name entered was "
<< firstname << " "
<< surname;
字符数组应用举例:
1. 求字符串的长度
2. 从键盘上读一个输入行并输出
3. 把两个字符串连接起来
4. 把一个数字字符串转换为相应的整数