C++自適應字符串匹配+字符串截斷算法

主要用於解析通訊模塊回傳的AT指令寫的通用方法,可以在不修改代碼的情況下自動匹配指定的關鍵詞,並將關鍵詞後的字符串回傳志屏幕(用於回傳指令的抓取),可以移植到51/32等單片機

主要方法

int TryToCatch(int Type)//參數是希望匹配的指令編號
{
	if (ch == SampleStr[Type][0])
	{
		i = 0;
		do
		{
			ch = cin.get();
			i++;
			if (ch != SampleStr[Type][i] || ch == '\n')
				break;
		} while (SampleStr[Type][i] != '\0');
	}
	if (SampleStr[Type][i] == '\0')
	{
		return 1;
	}
	return 0;
}

全局變量

char SampleStr[][10] = { "AT:","Error" };//匹配的指令表
char ch;
int i = 1;

主程序

    int flag = 0;
	int type;
	cout << "輸入你想檢測的信號" << endl;
	cin >> type;
	while (1)
	{
		do
		{
			ch = cin.get();
			flag = TryToCatch(type);
			if (flag == 1)
				cout << ch;
		} while (ch != '\n');
	}

測試結果如下:

  

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章