本帖最后由 poplaji 于 2013-4-30 00:53 编辑
void Uart_GetString(char *string) //该函数具有回送功能~
{
char *string2 = string;
char c;
while((c = Uart_Getch())!=''''\r'''') //判断是否是回车符
{
if(c==''''\b'''') //如果是退格键
{
if( (int)string2 < (int)string )
{
Uart_Printf("\b \b");
string--;
}
}
else
{
*string++ = c;
Uart_SendByte(c);
}
}
*string=''''\0''
Uart_SendByte(''''\n''''); //回车换行
}
这是一个串口接收字符串的函数,函数里面的string2有什么用么?
有谁能帮我分析一下这个string2的作用么,有点不太懂。
PS:额外加两个问题:
1.那个Uart_Printf("\b \b");为什么是两个\b,我试了一个\b是没法删除字符的。
2.我记得学习C++的时候我做过一些简单的例子,char* c,这个c其实就是字符串的地址,例如char* c=“abcd”
如果你cout<<c的话,会输出abcd,如果cout<<(c+1)会输出bcd,也就是说c是“abcd”的首地址,那么这个函数里面的参数string,在函数里面若干++操作之后,不再是得到字符串的首地址了?而应该是最后的地址? |