一种在C++中连接C字符串的更优雅的方法

A more elegant way to concatenate C strings in C++?

本文关键字:字符串 方法 连接 一种 C++      更新时间:2023-10-16

我想知道是否有一个。。。。无精打采地做这件事?我有一个赋值,它将信用卡信息放入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对象,也可以附加到字符串流中。

在C和C++中,您都可以访问格式化的输出,我认为这在这里是首选,因为整个代码整齐地放在一行上:

sprintf(buffer, "%s:%s:%s:%s", amount, cardNum, name, expiration);