Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Подскажите пожалуйста по программе на С++

petek568 Знаток (430), закрыт 12 лет назад
Ошибка: left operand must be l-value
Задача: В заданном тексте поменять местами каждые два соседних слова.
Текст программы:

#include "stdafx.h"
using namespace System;

#include <iostream>

using namespace std;
#include <locale.h>
void main(void)
{ int i,j,n,v1,v2;

char p[50][201]={};
char sl[50][201]={};
char text[50][201]={};

setlocale(LC_ALL,"Russian"); // Установим локаль = кодовую страницу CP1251
cout<<"При завершении ввода - введите пустую строку \n";
v1=0;
for (n=0; n<50; n++)
{
gets(text[n]);
v2=0;
for (i=0; i!=(strlen(text[n])); i++)
{

if (text[n]==' ')
{sl[v1][v2]='\0'; v1++; v2=0;} else
{sl[v1][v2]=text[n];
v2++;}

}

for (i=0; i<v1;>;
sl[201]=sl[i+1];
sl[i+1]=p[1];
}

if (!*text[n]) break;

}
setlocale (LC_ALL, ".866");
for (j=0; j<=v1; j++) cout<
Дополнен 12 лет назад
Продолжение

setlocale (LC_ALL, ".866");
for (j=0; j<=v1; j++) cout<<sl[j]<<">>i;
}

Лучший ответ
Юрий-17 Гений (76476) 12 лет назад
#include <iostream>
#include <string>
using namespace std;
int main ()
{
string p,s;
cout << "Введите строку: "; getline(cin,s);
char *p1;
char *p2;
int j,n1=0,n2=0,k;
cout << s << endl;
for(k=0;;)
{
p="";
if(k) p1=strtok(NULL," ");
else p1=strtok((char*)s.data()," ");
if(!p1) break;
n1=s.find_first_of(p1,k);
p2=strtok(NULL," ");
if(!p2) break;
n2=s.find_first_of(p2,n1+strlen(p1));
k=n2+strlen(p2);
p+=p2;
for(j=n1+strlen(p1);j-n2;j++) p+=s[j];
p+=p1;
s.replace(n1,n2-n1+strlen(p2),p);
}
cout << s << endl;
return 0;
}
Остальные ответы
Похожие вопросы