将char *变量一起添加?

时间:2015-08-19 22:57:15

标签: c char

非常简单的问题但在我的代码中我有两个char *变量。

ul.append($("<li class='ui-autocomplete-category'>" + item.Type + "</li>").data("ui-autocomplete-item", {}));

第一个是端口号,第二个是告诉给定接口的IP地址。

如果我想创建一个新的变量说,char *两者,为什么我不能说:

char* port = "1100";
char* ip = inet_ntoa(((struct sockaddr_in *)&ifr.ifr_addr)->sin_addr);

输出为172.21.8.179 1100?如何获得具有该输出的新变量?感谢

3 个答案:

答案 0 :(得分:1)

您可能想要使用snprintf

char buff[100];
snprintf(buff, sizeof(buff), "%s %s", port, ip);

答案 1 :(得分:0)

你不能在C中添加两个字符串,因为它们实际上并不是字符串。他们只是指针。并且添加两个指针会产生指向地址的指针,该指针是两个原始地址的总和。

要将两个char*连接在一起,您可以使用strcat(char * destination, const char * source)函数。只需确保您的both指针指向足够的内存以实际保存连接的字符串!

答案 2 :(得分:0)

您可以使用sprintf()函数调用

<强> ...

sprintf(char * buffer, const char * format, ...)

<强>动态

char* res = (char*)malloc(15);
char* str1 = "Hello ";
char* str2 = "World!";
sprintf(res, "%s%s", str1, str2);
puts(res); // Hello World!

<强>静态

char res[15];
char str1[] = "Hello ";
char str2[] = "World!";
sprintf(res, "%s%s", str1, str2);
puts(res); // Hello World!

您也可以使用%d格式说明符将整数添加到 C 字符串中。