Мне было интересно, если бы был менее …. простой способ сделать это? У меня есть назначение, которое помещает информацию о кредитной карте в пакет 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);