c言語unique実装
720 ワード
スペースを削除するような考え方ですが、スペースは指定文字です.ここでは、前の文字と同じ文字を削除します.
#include <iostream>
#include <cstring>
char * del_uniqe(char * const string)
{
int i = 0;
int j = 1;
int k = 0;
// delete spaces among characters
while (string[j] != '\0')
{
k = i==0?i:i - 1;
if (string[j] != string[k])
{
string[i++] = string[j++];
}
else
{
while (string[j] == string[k])
{
j++;
}
string[i++] = i == 0 ? string[j - 1] : string[j];
}
}
string[i] = '\0';
return string;
}
int _tmain(int argc, char ** argv)
{
char string[] = "11233334556677889990";
char * result = del_uniqe(string);
std::cout << result << std::endl;
}