私は、ネットワークからの文字列LOAD:07.09.30:-40.5&07.10.00:-41.7
を受け取りました。Cでの文字列分割:2つの部分を区切る
私は(私は07.09.30持っている:-40.5 1回目)し、「&
」に基づいて分離、それはLOAD:
タイプであることを検出する必要があります(文字列としてそれを維持)07.09.30
を分離し、その後
とし、 -40.5
(フロートに変換)。
フロートは-40.5
ですが、07.09.30
を文字列として保存する方法が見つかりません。コードの下
出力Iが分離し07.09.30
一部を保存することができますどのように
tilt angle -40.50
tilt angle -41.70
を示して?ソリューションを提供する前に
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main()
{
char p[]="LOAD:07.09.30:-40.5&07.10.00:-41.7";
char loadCmd[]="LOAD:";
char data[]="";
int ret;
int len=strlen (p);
int i=0, j=0;
if (!(ret = strncmp(p, loadCmd, 5)))
{
//copy p[5] to p[len-1] to char data[]
for (i=5;i<len;i++){
data[j++]=p[i];
}
data[j]='\0';
char *word = strtok(data, "&"); //07.09.30:-40
while (word != NULL){
char *separator = strchr(word, ':');
if (separator != 0){
separator++;
float tilt = atof(separator);
printf("tilt angle %.2f\n", tilt);
}
word= strtok(NULL, "&");
}
}
else {
printf("Not equal\n");
}
return(0);
}
1) 'charデータ[] = "";' - > 'charデータ【はsizeofのP] = "";' – BLUEPIXY
に関連する非常に密接[Cでチャーのコンポーネントを分割する方法と浮動小数点数に変換する?](https://stackoverflow.com/questions/37216938/) - 同じOPです。しかし、これは異なっており、間違いなく良い質問です。 –