strcat пропускает символы?
План действий такой записано где-то в глобальную переменную G_processedText текстовое сообщение, в этой функции я присоединяю к этой переменной переменную alphabet(пока все без нареканий), потом через цикл делаю отсечку повторяющихся символов(с помощью функции strcat) в переменную saveSymbols и вот здесь происходят странные вещи: сначала строки соединятся, но потом от G_processedText в результате цикла может отъесть одну букву
#pragma argsused
#include <iostream>
#include <cstring>
#define SIZE 250
#define SIZE_2 5
using namespace std;
//Прототипы функций
void keyWord();
void initializeMatrix();
//Глобальные переменные
char G_processedText[SIZE];
int main(int argc, char* argv[])
{
initializeMatrix();
system("pause");
return 0;
}
void initializeMatrix()
{
///cout << "Matrix: " << G_processedText << endl;
char matrix[SIZE_2][SIZE_2];
char saveSymbols[SIZE_2];
char alphabet[] = "abcdefghiklmnopqrstuvwxyz";
char j, p;
int i, k;
k = 0;
///Объединение ключа и алфавита
strcat(G_processedText, alphabet);
cout << "\nMatrix: " << endl;
for (i = 0; i <= strlen(G_processedText); i++)
{
p = G_processedText[i];
if(!strchr(saveSymbols, p))
{
saveSymbols[k] = p;
k += 1;
}
}
cout << saveSymbols;
Итогом всех действий должна быть строка без повторяющихся символов
Источник: Stack Overflow на русском