空白符:指回车和空格。
cin不会丢弃空白符,但是 >> 会跳过空白符。于是该行中最后输入的回车符就会被保存在cin的缓冲区中,在下次输入时会首先从缓冲区中取出这个空白符 ,这就会影响下次输入。所以一般在涉及到多行字符串输入时:就需要使用getchar()将这个空白符取出来,让它不会干扰后续输入
#include
#include
#include
#include
using namespace std;int main() {int n;cin >> n;cout << "n:" << n << endl; int ip[4] = {-1};int mask[4] = {-1};// char delimiter='A';// char po='B';char delimiter;char po;getchar();for (int i = 0; i < n; i++) {string str;getline(cin, str);cout << "str:" << str << endl;stringstream ss(str);ss >> ip[0] >> delimiter >> ip[1] >> delimiter >> ip[2] >> delimiter >> ip[3] >>po>> mask[0] >> delimiter >> mask[1] >> delimiter >> mask[2] >> delimiter >>mask[3];cout << ip[0] << delimiter << ip[1] << delimiter << ip[2] << delimiter << ip[3]<
须处理的输入
4
10.70.44.68~255.254.255.0
1.0.0.1~255.0.0.0
192.168.0.2~255.255.255.0
19..0.~255.255.255.0
输出
n:4
str:10.70.44.68~255.254.255.0
10.70.44.68~255.254.255.0
str:1.0.0.1~255.0.0.0
1.0.0.1~255.0.0.0
str:192.168.0.2~255.255.255.0
192.168.0.2~255.255.255.0
str:19..0.~255.255.255.0
19.0.0.2~255.255.255.0
以下函数的声明在头文件
isalpha()用来判断一个字符是否为字母,如果是字符则返回非零,否则返回零。
cout< 2.isalnum isalnum()用来判断一个字符是否为数字或者字母,也就是说判断一个字符是否属于az||AZ||0~9 cout< 3.islower islower()用来判断一个字符是否为小写字母,也就是是否属于a~z。 cout< 4.isupper isupper()和islower相反,用来判断一个字符是否为大写字母。 cout< 5.tolower tolower()函数是把字符串都转化为小写字母 string str= “THIS IS A STRING”; 5.toupper toupper()函数是把字符串都转化为小写字母 string str= “hahahahaha”; 判断 IP是否违法 将字符串从.或者:分割开
for (int i=0; i
for (int i=0; i 字符串处理函数
bool judge_ip(string ip){int j = 0;istringstream iss(ip);string seg;while(getline(iss,seg,'.'))if(++j > 4 || seg.empty() || stoi(seg) > 255)return false;return j == 4;
}
vector