c++ 学习笔记02

  今天又是苦逼的看C++,今天做了一到题,有一部分功能是把输入的IP地址数字串转换成IP地址格式,然后比较IP地址 是否在同一个局域网内,本来在C++中做字符串分割就比较麻烦,我就在想有没有别的方法可以实现呢,查了相关资料后发现,用sscanf(),可以实现这点功能,我就是用这个方法:

1 void IpFormat(int *arr,string inPuts)  //把字符串格式化为IP地址,arr数组用来存放IP地址的。
2 {
3     const char* IPadd = inPuts.c_str();
4     sscanf(IPadd, "%d.%d.%d.%d", arr, arr+1, arr+2, arr+3);
5 }

后来又上网查查了sscanf()资料,

 定义函数 int sscanf (const char *str,const char * format,........);

函数说明 
 sscanf()会将参数str的字符串根据参数format字符串来转换并格式化数据。格式转换形式请参考scanf()。转换后的结果存于对应的参数内。

返回值 成功则返回参数数目,失败则返回-1,错误原因存于errno中。 返回0表示失败    否则,表示正确格式化数据的个数    例如:sscanf(str,"%d%d%s", &i,&i2, &s);    如果三个变成都读入成功会返回3。    如果只读入了第一个整数到i则会返回1。证明无法从str读入第二个整数。

更详细的内容参考http://www.cnblogs.com/kex1n/archive/2011/06/09/2076501.html

  今天又做了几道题,题目到不是很难,难点是在于对于C++不是很了解,一些C++常用的函数不知道,以至于一个小功能可以用库函数实现,我却自己写函数实现,很麻烦的,就必然判断是否是大小写英文字母,是否是数字,这些库都有相应的函数,isdigit(),isupper(),islower()。这些函数可以直接调用的。还要继续努力!加油!

原文地址:https://www.cnblogs.com/lemonloves/p/2934226.html