如何停止sting数组。如果我设置了最多可以放入的40个字符,但我不想用40个字符填充整个字符串。这是我在字符串数组中写入char的代码。
int main(void)
{
char data[1][40];
int i1 = 0;
int i2 = 0;
serial_init();
while (1)
{
for (i1=0;i1<1;i1++)
{
for (i2=0;i2<40;i2++)
{
data[i1][i2] = Usart_Receive();
}
}
for (i1=0;i1<1;i1++)
{
for (i2=0;i2<40;i2++)
{
Usart_Transmit(data[i1][i2]);
}
}
}
return 0;
}
示例如果我按if (Usart_Receive() == '.')
。它起到阻止字符串填充直到40个字符的作用。怎么做,我希望有人可以帮助我。
答案 0 :(得分:0)
for (i1=0;i1<1;i1++)
{
for (i2=0;i2<40;i2++)
{
data[i1][i2] = Usart_Receive();
if (data[i1][i2] == '.') {
if (i2 < 39) data[i1][i2+1] = '\0'; // null terminate string
break
}
}
}
这将停止接收&#39;。&#39;,null终止字符串(如果需要),并退出循环。
答案 1 :(得分:0)
使用
int main(void)
{
char data[1][40];
int i1 = 0;
serial_init();
while (1)
{
while (1)
{
data[0][i1] = '?'; //Add whatever You want
char received = Usart_Receive();
if(received != '.'){
data[0][i1] = received;
}
i1++;
if(i1>40){
break;
}
}
i1 = 0;
while (1)
{
Usart_Transmit(data[0][i2]);
i1++;
if(i1>40){
break;
}
}
}
return 0;
}
如果收到的字符不等于'。',则会为您的数组添加char。还可以将char最多填充40个char到您的数组。