jos*_*501 0 c function c-strings
老实说,我认为我编写的代码是垃圾,而且我不认为这是解决问题的最佳方法。我需要一些建议或改进来解决这个问题。我对编码还是新手。如果您能提供一些有关如何使用字符串和各种字符串函数的提示,我将不胜感激。
该字符串成为 IP 地址的条件:-
连接到互联网的设备的标识号。以点分四组表示法书写的 IPv4 地址由四个用句点分隔的 8 位整数组成。
换句话说,它是一个由四个数字组成的字符串,每个数字都在 0 到 255 之间(含 0 和 255),并带有“.”。每个数字之间的字符。所有数字都应不带前导零。
例子:
这是我的代码(我知道它是垃圾并且没有任何意义):-
bool isIPv4Address(char * inputString) {
int count = 0, period = 0;
int k = 0, i = 0;
int digit = 0;
while(inputString[i] != '\0')
{
count = 0;
digit = 0;
i = k;
if(inputString[i] == '0' || inputString[i] == '.')
{
if(inputString[i+1] >47 && inputString[i+1] < 58)
{
return false;
}
}
while(inputString[i] != '.' && inputString[i] != '\0')
{
if(inputString[i] < 48 || inputString[i] > 57)
{
return false;
}
count += (int)inputString[i];
i++;
digit++;
}
if(digit == 3)
{
if(inputString[i - 3] > '2')
{
return false;
}
}
if(inputString[i] == '.')
{
period++;
}
k = i+1;
if(count < 48 || count > 156)
{
return false;
}
if(inputString[i] == '\0')
{
break;
}
}
if(period == 3)
{
return true;
}else
{
return false;
}
}
Run Code Online (Sandbox Code Playgroud)
在 POSIX 系统上,使用以下inet_addr()函数:
姓名
inet_addr,inet_ntoa- IPv4 地址操作概要
Run Code Online (Sandbox Code Playgroud)#include <arpa/inet.h> in_addr_t inet_addr(const char *cp); char *inet_ntoa(struct in_addr in);描述
该
inet_addr()函数应将 指向的字符串cp(采用标准 IPv4 点分十进制表示法)转换为适合用作 Internet 地址的整数值。
除非您编写代码用于练习,否则无需重新发明现有的标准解决方案。
...
返回值
成功完成后,
inet_addr()应返回互联网地址。否则,它将返回( in_addr_t)(-1)。...
| 归档时间: |
|
| 查看次数: |
190 次 |
| 最近记录: |