C++经典代码之:字符串处理 cin, cin.getline, cin.get 举例:对输入的IP地址进行分割
由于C++针对字符串提供了string类,相较于字符串数组,string更简单方便,因此C++处理字符或字符串重点是string类。这里简单总结一下通过cin来读取字符串到字符数组中。

【cin】最简单得一种输入方法,缺点是不能输入空格,输入空格会结束读取。
#include <iostream>
using namespace std;

int main()
{
	char str[20];
	cin >> str;
	cout << str << endl;

	system("pause");
	return 0;
}
【cin.getline()】这个函数有两个参数,第一个是用来存储输入行的数组的名称,第二个参数是要读取的字符数(要包含’\0’)。允许输入空格。注意与cin.getline()的区别,cin.getline()是输入流对象的成员函数,getline()是string类的成员函数,在读取字符串到string用getline()。
#include <iostream>
using namespace std;

int main()
{
	char str[3];
	cin.getline(str, 3); // 只会输入2个字符,因为最后还有个\0
	cout << str << endl;

	system("pause");
	return 0;
}

【cin.get()】get()的参数和用法与getline()一致,需要注意的是get()不会丢弃换行符,换行符会留在输入序列中,在使用的时候特别要注意!!下面这个例子中,第9行的cin.get()不能少,它的作用是丢弃输入序列中的换行符,如果没有这一行,str2中不能存入字符。
#include <iostream>
using namespace std;

int main()
{
	char str1[20];
	char str2[20];
	cin.get(str1, 20);
	cin.get();
	cin.get(str2, 20);
	cout << "str1:" << str1 << endl;
	cout << "str2:" << str2 << endl;

	system("pause");
	return 0;
}
举例,对输入的IP地址进行分割。
#include <iostream>
#include <string>
using namespace std;

int main()
{
	string str1, str2, str3, str4;

	getline(cin, str1, '.');
	getline(cin, str2, '.');
	getline(cin, str3, '.');
	getline(cin, str4);

	cout << str1 << "-" << str2 << "-" << str3 << "-" << str4 << endl;

	system("pause");
	return 0;
}
比如输入:127.0.1.2可以看到:
127-0-1-2
创作不易,支持我们就点击下方广告用优惠券买东西吧 :)

百事知道 版权所有,禁止转载,除非给出本网网址。