Anh, chị và các bạn giúp mình việc tách 1 mảng ra thành 3 mảng với! cụ thể là có một mảng như sau:
array[30] = "654321 42.119.173.169 1234", mình muốn tách thành pass_receive[6] ="65431", ip_receive[14]="42.119.173.169", port_receive[4]= "1234" . Nhưng kết quả mình làm không có trúng tí nào hết, mọi người giúp mình với, có nhiêu đó mà đuối với nó quá!
array[30] = "654321 42.119.173.169 1234", mình muốn tách thành pass_receive[6] ="65431", ip_receive[14]="42.119.173.169", port_receive[4]= "1234" . Nhưng kết quả mình làm không có trúng tí nào hết, mọi người giúp mình với, có nhiêu đó mà đuối với nó quá!
Code:
#include "io430.h"
void init_UART_g2553();
void Send_Char(char chr);
void Print_UART(char *ch);
char array[30] = "654321 42.119.173.169 1234";
char pass_receive[6],ip_receive[14],port_receive[4];
void split_buffer(char *data) // Xac dinh PASS, IP, PORT tu buffer
{
char i=0;
// strcpy(string1, data);
// strncpy(pass_receive,string1, 6); // copy 6 phan tu cua buffer dua vao pass
// strncpy(pass_receive,data, 6); // copy 6 phan tu cua buffer dua vao pass
// lấy 6 phần tử đầu tiên của mảng nguồn lưu vào pass_receive
for (i=0;i<6;i++)
{
pass_receive[i] = *(data+i);
// *(data+i)=0;
}
// lấy 14 phần tử tiếp theo của mảng nguồn lưu vào ip_receive
for (i=0;i<14;i++)
{
ip_receive[i] = *(data+i+7);
// *(data+i+7)=0;
}
// lấy 4 phần tử cuối cùng của mảng nguồn lưu vào port_receive
for (i=0;i<4;i++)
{
port_receive[i] = *(data+i+22);
// *(data+i+22)=0;
}
// erase_buffer();
}
int main( void )
{
// Stop watchdog timer to prevent time out reset
WDTCTL = WDTPW + WDTHOLD;
// Su dung dao dong noi ben trong chip msp430g2553
BCSCTL1 = CALBC1_1MHZ;
DCOCTL = CALDCO_1MHZ;
init_UART_g2553();
while(1)
{
split_buffer(array);
Print_UART(" Noi dung cua array : ");
Print_UART(array);Print_UART("\r\n");
__delay_cycles(1000000);
// in ra pass
Print_UART(pass_receive);Print_UART("\r\n");__delay_cycles(1000000);
// in ra ip
Print_UART(ip_receive);Print_UART("\r\n");__delay_cycles(1000000);
// in ra port
Print_UART(port_receive);Print_UART("\r\n");__delay_cycles(1000000);
}
}
void init_UART_g2553(){
// ======================== UART GPIO ==========================================
P1SEL = BIT1 + BIT2 ; // P1.1 = RXD, P1.2=TXD
P1SEL2 = BIT1 + BIT2 ; // P1.1 = RXD, P1.2=TXD
// ======================== Sour Clock & =========================================
UCA0CTL1 |= UCSSEL_2; // SMCLK
UCA0BR0 = 104; // 1MHz 9600
UCA0BR1 = 0; // 1MHz 9600
// ======================= .... ================================================
UCA0MCTL |= (UCBRS0); // Modulation UCBRSx = 1
UCA0CTL1 &= ~UCSWRST; // **Initialize USCI state machine**
IE2 |= (UCA0RXIE);
}
void Send_Char(char chr)
{
while (!(IFG2&UCA0TXIFG)); // USCI_A0 TX buffer ready?
UCA0TXBUF = chr; // load gia tri vao UCA0TXBUF
}
// ================ Ham Print chuoi ky tu tu msp430 gui len Terminal ===========
// ================== Gia tri tra ve: khong ====================================
void Print_UART(char *ch){
char i = 0;
while(ch[i] != '\0'){
Send_Char(ch[i]);
i++;
}
}