第一次学状态机编程觉得简单了好多。
char str[128] = " 200 20 ";
int argc = 0;
char argv[16];
void parse(void)
{
int i = 0;
int state = 0;
while (str[i])
{
if (state == 1 && str[i] != ' ')
{
argv[argc++] = str[i];
}
if (state == 1 && str[i] == ' ')
{
state = 0;
argv[argc++] = str[i];
}
if(state == 0 && str[i] != ' ')
{
state = 1;
argv[argc++] = str[i];
}
i++;
}
int len;
len = strlen(argv);
printf("len %d\n" , len);
printf("%c\n",argv[len]);
if(argv[len] == ' ')
{
argv[len] = '\0';
}
return;
}
int main(void)
{
int i = 0;
parse();
printf("argc = %d \n", argc);
// for (i = 0; i < argc; i++)
printf("%s",argv);
return 0;
}
本文详细介绍了如何使用状态机编程技术来解析字符字符串,并通过实例展示了字符数组转字符串的过程,深入浅出地阐述了状态机在实际编程中的应用。
171万+

被折叠的 条评论
为什么被折叠?



