连续字符串输入(不能有空格,会中断)
C语言版
#include <stdlib.h>//malloc函数
#include <stdio.h>
int main()
{
//静态分配
char nzArr[100];
scanf("%s", nzArr);
//动态分配
int nLen = 0;
scanf("%d", &nLen);
char *nzArr1 = (char*)malloc(nLen * sizeof(char));
scanf("%s", nzArr1);
//...
free(nzArr1);
return 0;
}
C++版
#include<iostream>
using namespace std;
int main()
{
char nzArr[100];
cin >> nzArr;
// 由输入确定连续字符串的长度
int nLen = 0;
cin >> nLen;
char* nzArr1 = new char[nLen * sizeof(char)];
cin >> nzArr1;
//...
delete nzArr1;
return 0;
}
字符串语句输入(包含空格)
要求:输入一段字符串语句保存在字符串数组中,而且并没告诉你包含多少字符,以及还包含空格
思路:因为保存一个字符串会在空格处断开,后面直接舍弃。如果用流的方式读入,这就设计申请二位字符串数组,很麻烦。因此转而使用读入整行
char nzArr[100];
cin.getline(nzArr, 100);
如果想知道自己输入了多少个字符(包括空格),可以调用计算字符串长度的函数:
#include <cstring>
int nLen = strlen(nzArr);
数字数据输入(利用vector存)
要求:一般输入数字数据,会让你先输入数据个数,然后另起一行,隔个空格输入一个数据。
#include<iostream>
#include <vector>
using namespace std;
int main()
{
int nLen = 0;
cin >> nLen;
vector<int> nArr;
//或者动态申请地址也是一样。
for (int i = 0; i < nLen; i++)
{
int tmp = 0;
cin >> tmp;
nArr.push_back(tmp);
//或者scanf("%d",&nArr[i]);
}
return 0;
}