簡體   English   中英

如何在C中連接一個int

[英]How to concatenate an int in 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);

我不想將其串聯為字符串,而是將其串聯為int串聯 ,還有其他可能的選擇嗎?

首先,您似乎要做的正是inet_aton在做什么。 您可以考慮使用此功能。

關於串聯,你可以寫

int result = (val[3] << 24) | (val[2] << 16) | (val[1] << 8) | (val[0]);

或者,對於相反的字節順序:

int result = (val[0] << 24) | (val[1] << 16) | (val[2] << 8) | (val[3]);

你可能想要

(((((val[0] << 8) + val[1]) << 8) + val[2]) << 8 ) + val[3]

或同等

(val[0] << 24) | (val[1] << 16) | (val[2] << 8) | val[0]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM