char *feedtime = "0:0";
String interval = "6";
char* convert(char* x, String y){
int hour;
int minute;
sscanf(x, "%d:%d", &hour, &minute);
char buf[5];
if (y == "6"){
if (hour > 17){
hour = (hour+6)%24;
snprintf(buf, 5, "%d%s", hour, ":0");
}
if (hour < 18){
hour = hour + 6;
snprintf(buf, 5, "%d%s", hour, ":0\0");
}
}
buf [5] = '\0';
return buf;
}
当我执行convert(time,interval);
串行监视器返回正确的值,但会添加一个 ' 或其他符号。
有什么想法吗?
我根据人们的说法更新了我的代码,但是我仍然遇到同样的问题?
最佳答案
您正在返回一个指向堆栈变量的指针。这是错误的。一旦函数退出,“buf”使用的堆栈空间就未定义。
关于c - Arduino serial.print() 在实际字符后添加一个额外的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4528611/