求一個字串中最長的連續字符串

舉例子來說:對於字符串"1234abcdef1234567abcdefghijklmn",這個字串中最長的連續字符串爲“abcdefghijklmn”。




int continumax(char *outputstr,char *inputstr)
{
	char maxrecord[100] = {0};
	int maxlength = 0;

	char currentrecord[100] = {0};
	int currentlength = 0;

	char value = 0;
	char *p = inputstr;
	
	while(*p++ != '\0')
	{
		if (value + 1 == *p)
		{
			value = *p;
			currentrecord[currentlength] = *p;
			currentlength++;
		}
		else
		{
			if (currentlength > maxlength)
			{
				maxlength = currentlength;
				memcpy(maxrecord, currentrecord, currentlength);
			}

			currentlength = 0;
			memset(currentrecord, 0, 100);
			
			value = *p;
			currentrecord[currentlength] = *p;
			currentlength++;

		}
	}

	if (currentlength > maxlength)
	{
		maxlength = currentlength;
		memcpy(maxrecord, currentrecord, currentlength);
	}

	memcpy(outputstr, maxrecord, maxlength);
	return maxlength;
}





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