Нямам много време, та това, което остава да направиш, е да ограничиш първия низ до 20 думи и да погледнеш случая, в който накрая може да остане запетая в новия низ (тоест, ако накрая имаш такава, да я разкараш). Също така, по начинът, по който съм я написал сега, програмата предполага, че човекът е въвел низ, в който има само 0-6 буквени думи, разделени със запетаи и ако не е такъв формата, дава грешка.
Ето я и програмата:
Код:
#include <iostream>
#include <string>
using namespace std;
string generateString(const string & inputString)
{
string result = "";
string buffer = "";
int i=0;
int count=0;
while(i<(inputString.length()))
{
if(inputString[i]==',')
{
i++;
if(result.find(buffer+',')==string::npos)
{
result+=buffer;
result+=',';
}
buffer="";
count=0;
}
else
{
if(inputString[i]>='A' && inputString[i]<='Z' && count<=6)
{
buffer+=inputString[i];
i++;
count++;
}
else
{
i++;
buffer="";
count=0;
cout<<"Wrong Format";
return buffer;
}
}
}
if(result.find(buffer+',')==string::npos)
result+=buffer;
return result;
}
int main()
{
string input, output;
cout<<"Vuvedete niz: ";
cin>>input;
output = generateString(input);
cout<<"\n"<<output;
cin>>input; //Just to hold the console open
return 0;
}