簡體   English   中英

c ++比較在緩沖區中的2個字符串之間不起作用

[英]c++ Comparison doesn't work between 2 strings from buffer

我有一個套接字,它從客戶端讀取一個字符串,然后在文本文件中搜索匹配項。

   vector<string> resultlist;
   int n;
   char* buffer = new char[256];

   bzero(buffer,256);
   n = read(sock,buffer,255);
   if (n < 0) error("ERROR reading from socket");
   printf("Here is the message: %s\n",buffer);
   readFile(buffer);
   string searchStr(buffer);
   for(int k=0; k<resultlist.size(); k++){
    if(resultlist[k].compare(searchStr)==0){ cout << resultlist[k+1] << endl; }
   }
   n = write(sock,"I got your message",18);
   if (n < 0) error("ERROR writing to socket"); 

所以基本上,結果列表是一個包含字符串變量的向量,我想比較它是否匹配,然后顯示下一個變量。 但是,我的比較總是失敗。

有人可以幫忙嗎?

您從套接字獲得的字符串很可能在末尾包含特殊字符,例如\\r\\n 檢查並清理它們。

暫無
暫無

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

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