如何在c中连接int

Kap*_*sHi 0 c

所以我有这个代码

char str[80] = "192.168.12.142";
char string[80];
char s[2] = ".";
char *token;
int val[4];
int counter=0;
/* get the first token */
token = strtok(str, s);

/* walk through other tokens */
while( token != NULL ){

  val[counter] = atoi(token);
  token = strtok(NULL, s);
  counter++;
}


sprintf(string,"%d.%d.%d.%d",val[0],val[1],val[2],val[3]);
puts(string);
Run Code Online (Sandbox Code Playgroud)

而不是将它连接成一个字符串,我想将它连接到一个int连接,有没有可能的替代?

Wer*_*nze 5

首先,你似乎inet_aton正在做的事情正是在做什么.您可以考虑使用此功能.

关于串联,你可以写

int result = (val[3] << 24) | (val[2] << 16) | (val[1] << 8) | (val[0]);
Run Code Online (Sandbox Code Playgroud)

或者,对于相反的字节顺序:

int result = (val[0] << 24) | (val[1] << 16) | (val[2] << 8) | (val[3]);
Run Code Online (Sandbox Code Playgroud)