在C中解析" String"(char数组)中的string,int和int

时间:2014-10-22 03:18:58

标签: c arrays string parsing

我有一个UDP套接字服务器和客户端设置,客户端从服务器请求一些信息,以char数组的形式发送请求,该数组包含[ID,“”,choice,“,request]它们分别是字符串,int和int。我需要能够从数组中解析这三个参数来访问我的数据库以发回正确的信息。到目前为止,我已经尝试使用while循环来解析这些,但遗憾的是这不起作用。对更好的解决方案有效的建议吗?第一个int将是一位数长,然而第二个int可能很长。

char *idToCheck;
int k = 0;
while(strcmp(messBuffer[k]," ") == 1){
    idToCheck += messBuffer[k];
}
int choice = messBuffer[k++];
int request;
while(strcmp(messBuffer[k],"\0") == 1){
     ????
}

1 个答案:

答案 0 :(得分:0)

一些事情:

  • 您需要将idToCheck指向或定义为具有一些存储空间。
  • 不要使用strcmp来比较字符 - 只需使用==

如何开始 - 假设Id不会超过MAX_ID_LEN。

#define MAX_ID_LEN  80
char idToCheck[MAX_ID_LEN]
int i;

for (i = 0; i < MAX_ID_LEN; i++) {
   if (messBuffer[i] != ' ') {
       idToCheck[i] = messBUffer[i];
   }
   else {
       break;
   }
}