你的字符串是存在char* a中吧。 *a就是第一个字符,*(++a)就是第二字符。再来一次*(++a)就是第三个字符,但是记得不要记a加的出了字符串的界就行了。 要不就把串口发来的数据存到一个char a[10]的数组中。然后用的时候用下标去一个一个取,比如: a[0]就是第一个字符,a[1]就是第二个字符。 单独取出来的字符再和'0'这个字符相减就是你的字符表示的真实数字。 比如一个char a = '9'. int number = a - '0'; 这样number中就存的是数字9. 第一种情况,如果你的字符串是存在char *s中,像这样: char *s = "5670"; 这样,第一个字符就是 char a = *s; int number1 = a - '0'; //这里number1中存的就是数字5 同理,再接着写 a = *(++s); int number2 = a - '0';//这里的number2中存的就是数字6 第三个字符,接着写: a = *(++s); int number3 = a - '0'j;//number3中存的就是数字7 第四个字符;接着: a = *(++s); int number4 = a - '0';//这时number4中存的就是数字0 这个时候再把四个数字,存到你的L和R中: int L = number0*10+number2; int R = number3*10+number4; 第二种情况,如果从串口取到的字符都是存在一个数组中,比如: char a[10]; 这样你就用数组的标号取就可以了。