gpt4 book ai didi

c - 网络掩码转换,有什么问题?

转载 作者:太空宇宙 更新时间:2023-11-04 02:33:13 25 4
gpt4 key购买 nike

谁能告诉我以下代码哪里出错了?

#include <stdlib.h>
#include <stdio.h>
#include <string.h>

int main() {
char str[35]={0};
char b[15]="255.255.255.255";
nmcalc(b,str);
return 0;
}

void nmcalc(char str[],char b[35]) {
char *delim = ".";
char *pch;
char a[8]={0};
int num;
int i =0;

pch = strtok(str,delim);
while (pch != NULL){
i++;
num=atoi(pch);
decToBinStr8bit(num,a);
strcat(b,a);
if(i!=3){
strcat(b,".");
}
pch = strtok(NULL, delim);
}
}

void decToBinStr8bit(int n,char str[]){
int c, k;
strcpy(str,"");
for (c = 7; c >= 0; c--) {
k = n >> c;

if (k & 1)
strcat(str,"1");
else
strcat(str,"0");
}
}

这似乎是一个无限循环。

最佳答案

问题在于以下代码中的空终止符。

char b[15]="255.255.255.255"; 大小应为 16

还有 char a[8]={0}; 大小应该是 9 或者 strcat(a,b) 你可以使用以下内容:

strncat(b, a, 8); 但我建议你使用空终止符。

关于c - 网络掩码转换,有什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40805820/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com