[英]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
來獲取字符串的長度,然后分配適當大小的緩沖區,並使用sprintf
或strcpy
將格式化的數據填充其中。
但是正如Kurtis所說的,如果您要做的就是將一個包含空格的字符串傳遞給您的程序,那么這就是shell的問題,而不是您的程序。 在Unix上,您應該使用單引號( '
),而在Windows上,您可以使用雙引號( "
)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.