非常简单的问题但在我的代码中我有两个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?如何获得具有该输出的新变量?感谢
答案 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 字符串中。