@igoodmood

В чем ошибка: выражение должно иметь тип класса?

Хочу реализовать программу, которая переносит часть элементов в другой массив, потом в ней удаляется часть элементов, тем самым образуется как-бы две подстроки. Но возникла ошибка : в строке "str.erase(u);
" пишет ошибку : "Выражение должно иметь тип класса". Как исправить данную ошибку? Заранее спасибо за помощь.
Вот сам код :
#include "stdafx.h"
#include <iostream>
#include "string"
#define MAX 50
using namespace std;
int main()
{
	setlocale (LC_ALL, "Russian");
	char s1[MAX],s2[MAX],str[50];
	int i=0,u=0,j=0;
	cout << "Введите строку:";
	cin >> str;
	i = strlen(str);
	j = i / 2;
	u = i - j;
	strncpy (s1, str, j );
	s1[j] = '\0';
	cout << s1 << endl;
	str.erase(u);
	cout << s2 << endl; 
	system("pause");
	return 0;
}
  • Вопрос задан
  • 5154 просмотра
Пригласить эксперта
Ответы на вопрос 1
zagayevskiy
@zagayevskiy
Android developer at Yandex
Вы метод erase вызываете у массива char. В С++ массивы вообще не имеют методов. Посмотрите в сторону std::string. Это класс и у него есть такой метод:
www.cplusplus.com/reference/string/string/erase
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы