字符串在c程序中接收后以/ UN结尾?

时间:2018-04-23 13:07:54

标签: c arrays string

我在手机上的终端和连接到微控制器的蓝牙模块(pic18f)之间进行传输和接收。

我设置了一个4的数组char input[4] = ""来存储来自终端的用户输入。函数getsUSART(input,4)将输入放在那里。

问题是,当我检查输入内容时,我发现这是' ABC / UN'当我在终端输入ABC时。 / UN是逃脱序列吗?如果是这样,它的关键是什么?

此外,如果我想将输入与字符串进行比较,请说明字符串是'嘿嘿' 我会char str1[4] = "hey/UN"然后strcmp(input, str1) == 0吗?

编辑:

所以可以在这里访问编译器库(USART),第66页我相信:http://ww1.microchip.com/downloads/en/DeviceDoc/MPLAB_C18_Libraries_51297f.pdf

这是相关代码,仅用于获取输入并放置null:

    char input[4] = "";
    while(BusyUSART());
    while (!DataRdyUSART());
    getsUSART(input, 4);            //Get the input. 
    // NULL terminate the string for putsUSART call.
    input[4] = '/0'; 
    putrsUSART("Input:");
    putsUSART(input);

当我输入[4] =' / 0'时,我试图将其终止,如果它没有终止,我在这里做错了吗?

1 个答案:

答案 0 :(得分:0)

您忘记了从0开始的C计数。

所以在你的例子中:

   input[0] = 'A'
   input[1] = 'B'
   input[2] = 'C'
   input[3] = some old byte of data
   input[4] = '\0'