我想知道是否有更简单的方法来做到这一点?我有一个任务将信用卡信息放在 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;
}
最佳答案
在 C++ 中,您可以使用 +
连接 std::string
对象,或附加到 string stream .
在 C 和 C++ 中,您都可以访问格式化输出,我认为这是首选,因为整个代码都整齐地放在一行中:
sprintf(buffer, "%s:%s:%s:%s", amount, cardNum, name, expiration);
关于c++ - 在 C++ 中连接 C 字符串的更优雅的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23258575/