簡體   English   中英

如何將多個* argv合並為char *類型的消息

[英]how to combine multiple *argv into a char* type messge

我編寫了一個TCP套接字客戶端程序,該程序允許用戶輸入IP,端口和消息作為參數。

它像是:

./a.out 127.0.0.1 555 test message

我的問題是,如何將“ test”( argv[3] )和“ message”( argv[4] )以及更多內容組合為char *message

您實際上想做的是:

/a.out 127.0.0.1 555 "test message"

通過在消息兩邊加上引號,argv [3]將包含完整的消息。 然后,您不必費心將參數串聯在一起。

您必須獲得要合並的argv字符串的長度。 創建該大小的char數組,然后使用strcpy (最好是安全版本)將字符串復制過來。

您可以使用strlen來獲取字符串的長度,然后分配適當大小的緩沖區,並使用sprintfstrcpy將格式化的數據填充其中。

但是正如Kurtis所說的,如果您要做的就是將一個包含空格的字符串傳遞給您的程序,那么這就是shell的問題,而不是您的程序。 在Unix上,您應該使用單引號( ' ),而在Windows上,您可以使用雙引號( " )。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM