文字列を分割して 2 つの部分になる 2 つの関数を作成しようとしました。最初の関数は文字列「Mode 1」を取得したい関数で、RX_IN_CHR_UART
変数の場合はシリアル ポートから「Mode 1 34」のようなデータを入力し、2 番目の関数は取得したい「34」
文字列「Mode 1」を取得するこの関数
#define GET_MODE_X 6
#define GET_VALUE 4
const char RX_IN_CHR_UART[];
char* pod(char buf_Rx[])
{
int i=0;
char spn[GET_MODE_X]; // 7
for(i=0;i<GET_MODE_X;i++)
{
spn[i] = buf_Rx[i];
}
return Get_mode_x = spn;
}
そして、この関数は文字列「34」を取得します
char* dop(char buf_Rx_val[])
{
int k=0;
char datasip[GET_VALUE]; //2
for(k=0;k<GET_VALUE;k++)
{
datasip[k] = buf_Rx_val[GET_MODE_X+k+1];
}
return (Get_val_mod = datasip);
}
関数のdop()
使用を比較しようとすると、機能if(dop(RX_IN_CHR_UART)=="34")
しません。
if(!strcmp(mode1,pod(RX_IN_CHR_UART))) // compare "Mode 1"
{
Send_teks("Mode 1 ->:"); // send to serial port
Send_teks(pod(RX_IN_CHR_UART));
Send_Char('\n');
Send_teks("Data yang dimasukkan ->:");
Send_teks(dop(RX_IN_CHR_UART));
Send_Char('\n');
if(dop(RX_IN_CHR_UART) == "34") // doesn't work well
{
pwm_off();
LCD_command(0x85);
LCD_sendstring("Kipas off ");
Send_teks("Sukses");
Send_Char('\n');
Send_teks("Kipas Off");
Send_Char('\n');
}
}
dop() を "34" と比較するには、この関数をどうすればよいですか?