如何查明 char 中是否包含任何内容?

问题描述 投票:0回答:1

我有一个应用程序,其中我将输入的文本保存到 EEPROM,然后每次启动该应用程序时从 EEPROM 检索它。这是我用来检索 EEPROM 的代码,将其分成几个部分并打印出每个部分的内容。

char auth[32]="";
char userNameKey[32]="";
String abcd; 

EEPROM.begin(512);

{
wwww = wwww + char(EEPROM.read(0x06+i)); //Read one by one with starting address of 0x0F    
}  
String zzz;
String uuuu;
for(int i=0;i<32;i++)
{uuuu =  uuuu + char(EEPROM.read(0x50+i));
} 
String yyyy = userNameKey;
String vvvv;
for(int i=0;i<33;i++)
{vvvv =  vvvv + char(EEPROM.read(0x90+i));
} 
wwww.toCharArray(auth,33);
Serial.println("Auth");
Serial.print(auth);
Serial.println("this");
Serial.print(wwww);
abcd = wwww;
Serial.println("that");
Serial.print(uuuu);
Serial.println("those");
Serial.print(vvvv);
int firstCommaIndex = uuuu.indexOf(',');
String dateOffset = uuuu.substring(0, firstCommaIndex);
Serial.println("most");
Serial.print(dateOffset);
int firstCommaIndexa = vvvv.indexOf(',');
String wstemp = vvvv.substring(0, firstCommaIndexa);
TRIPPER = wstemp;
WIFIER = wstemp;
int len = firstCommaIndexa;
wstemp.toCharArray(userr,len+1);
Serial.println("some");
Serial.print(wstemp);

当没有输入并且我 Serial.print 时,我得到了。

Auth
16:11:05.204 -> ⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮this
16:11:05.204 -> ⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮that
16:11:05.204 -> ⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮those
16:11:05.204 -> ⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮most
16:11:05.204 -> ⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮some
16:11:05.242 -> ⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮

这是输入一些文本后的打印输出

Auth
16:35:57.878 -> XXX_UqXsXdCjcmqmNtUgkzb260Gdj0eLthis
16:35:57.878 -> XXX_UqXsXdCjcmqmNtUgkzb260Gdj0eLthat
16:35:57.878 -> -7,⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮those
16:35:57.878 -> SomeN,⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮most
16:35:57.911 -> -7some
16:35:57.911 -> SomeN

我想知道 char auth 是否是原来的

char auth[32]="";

或者已对其进行修改以包含输入文本。

if (auth == NULL) {
Serial.print ("auth empty");
}
if (*auth = '/0'){
Serial.print ("auth /0");
}

我已经尝试过这两种方法,但是当没有输入时我得到

auth /0

输入后我得到

auth /0

我确信这很简单,但如果有人能帮助我,我将不胜感激。

char arduino-ide eeprom
1个回答
0
投票

所以我想出了如何做到这一点。

我拿了代码

firstCommaIndexa = vvvv.indexOf(',');

并问了这个问题

if (firstCommaIndexa >0) {
Serial.print ("comma present");
}
else {
Serial.print ("no comma present");
}

虽然不雄辩,但完成了工作。

© www.soinside.com 2019 - 2024. All rights reserved.