更改文本中的值并将其存储为C中的字符数组

更改文本中的值并将其存储为C中的字符数组,c,sip,C,Sip,我需要一些关于使用SIP INVITE消息存储阵列的场景的信息 char array_invite[] = "INVITE sip:302@1.2.3.4 SIP/2.0\r\n" "Via:SIP/2.0/UDP 5.6.7.8:39708;\r\n" "Max-Forwards: 70\r\n" "Cont

我需要一些关于使用SIP INVITE消息存储阵列的场景的信息

char array_invite[] =        "INVITE sip:302@1.2.3.4 SIP/2.0\r\n"
                             "Via:SIP/2.0/UDP 5.6.7.8:39708;\r\n"
                             "Max-Forwards: 70\r\n"
                             "Contact:<sip:305@ 5.6.7.8>\r\n"
                             "To: <sip:302@1.2.3.4>; \r\n"
                             "From: \042Client\042<sip:305@5.6.7.8>;\r\n"
                             "Call-ID: abcdefg\r\n"
                             "CSeq: 1 INVITE\r\n"
                             "Content-Type: application/sdp\r\n"
                             "Content-Length: 142\r\n";
char数组_invite[]=“invite sip:302@1.2.3.4SIP/2.0\r\n“
“Via:SIP/2.0/UDP 5.6.7.8:39708;\r\n”
“最大转发数:70\r\n”
“联系人:\r\n”
“收件人:;\r\n”
“发件人:\042客户端\042;\r\n”
“呼叫ID:abcdefg\r\n”
“CSeq:1邀请\r\n”
“内容类型:应用程序/sdp\r\n”
“内容长度:142\r\n”;
我想更改IP地址(1.2.3.4和5.6.7.8)和ID号(302和305)的硬代码值,并使其动态化,以便我想在终端输出中手动输入值,以便每个会话都可以连接到不同的远程地址。因为我的C语言不是很流利,所以我发布了这个问题

任何人都知道如何在C中实现这一点,可以举个例子

问候
开发人员使用sprintf将起作用

char array_invite[MAXLENGTH];
sprintf(array_invite,"Meet me at port %d\n",portnum);
您应该使用
从格式化“模板”构建字符串,如下所示:

char buffer[4096];
int ip{[4];

ip[0] = 1;
ip[1] = 2;
ip[2] = 3;
ip[3] = 4;

snprintf(buffer, sizeof buffer, "INVITE sip:302@%d.%d.%d.%d SIP/2.0\r\n"
                             "Via:SIP/2.0/UDP 5.6.7.8:39708;\r\n"
                             "Max-Forwards: 70\r\n"
                             "Contact:<sip:305@ 5.6.7.8>\r\n"
                             "To: <sip:302@1.2.3.4>; \r\n"
                             "From: \042Client\042<sip:305@5.6.7.8>;\r\n"
                             "Call-ID: abcdefg\r\n"
                             "CSeq: 1 INVITE\r\n"
                             "Content-Type: application/sdp\r\n"
                             "Content-Length: 142\r\n", ip[0], ip[1], ip[2], ip[3]);
char缓冲区[4096];
int ip{[4];
ip[0]=1;
ip[1]=2;
ip[2]=3;
ip[3]=4;
snprintf(缓冲区,缓冲区大小,“邀请sip:302@%d.%d.%d sip/2.0\r\n”
“Via:SIP/2.0/UDP 5.6.7.8:39708;\r\n”
“最大转发数:70\r\n”
“联系人:\r\n”
“收件人:;\r\n”
“发件人:\042客户端\042;\r\n”
“呼叫ID:abcdefg\r\n”
“CSeq:1邀请\r\n”
“内容类型:应用程序/sdp\r\n”
“内容长度:142\r\n”,ip[0],ip[1],ip[2],ip[3]);
在这里,我只模板化了第一个IP地址,并将其表示为四个
int
:s。您需要将其扩展到要动态格式化的其余字段