我想知道是否有一个不那么糟糕的方法来做到这一点?我有一个将信用卡信息放在UDP数据包中的任务,信息在缓冲区中以冒号分隔,因此它看起来像Bob Jones:7845 6133 7889 4425:09/2017:654.99
存储在单个字符数组中。
int main(int argc, char **argv)
{
char buffer[256];
char name[64];
char cardNum[32];
char expiration[8];
char amount[14];
while(true)
{
/*********
(Input prompts go here, break if user types quit)
*********/
strcpy(buffer, amount);
int length = strlen(buffer);
buffer[length] = ':';
strcat(buffer, cardNum);
length = strlen(buffer);
buffer[length] = ':';
strcat(buffer, name);
length = strlen(buffer);
buffer[length] = ':';
strcat(buffer, expiration);
/***************
(run all of the networking code)
***************/
}
return 0;
}
答案 0 :(得分:2)
在C ++中,您可以使用std::string
连接+
个对象,或附加到string stream。
在C和C ++中,您都可以访问格式化输出,我认为这是首选,因为整个代码整齐地适用于一行:
sprintf(buffer, "%s:%s:%s:%s", amount, cardNum, name, expiration);