Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.05.2014, 00:38   #1
Yborshik
 
Регистрация: 27.05.2014
Сообщений: 4
По умолчанию Подскажите перевести с string в char

Здравствуйте!
столкнулся с проблемой переобразования string в char.
Вот есть программа
Код:
ifstream txt;
	string line;
	txt.open("slova.txt");
	int linenum = 0, n;
	while (getline(txt, line))
		++linenum;
	n = rand() % linenum;
	txt.close();
	cout << line;
В ней я рандомно достаю слово из текста, но дальше я работаю с char и вот тут началось
Вот сама программа:
Код:
#include<iostream>
#include <stdio.h>
#include<locale>
#include <cstdlib>
#include <windows.h> 
#include <conio.h>
using namespace std;
int main()
{
	setlocale(LC_ALL, "Rus");
	char array[100];	
	char array1[100];
	char b;

	cout << "Введiть слово: ";
	cin >> array;
	system("cls");
	
	int a = strlen(array);// Вимірюємо кількість букв першого масиву
	for (int i = 0; i < a; i++)//Присвоюємо другій строчці "_"
	{
		Sleep(200);
		array1[i] = '_';
		cout << array1[i]<<' ';
	}

	int k = 15;
	while (k>0)
	{
		cout << "\n\n Введiть букву: ";
		cin >> b;
		cout << '\n';

		for (int i = 0; i < a; i++)//перевірка на наявність введеної букви		
		{
			if (b == array1[i])
			{
				cout << "Ви вводили вже таку букву \n";
			}
		}
		
		for (int i = 0; i < a; i++)//У цьому циклі замінюємо "_" на введену букву			
		{
			if (b == array[i])
			{
				array1[i] = b;				
			}
		}


		for (int i = 0; i < a; i++)//Виводиться другий масив
		{
			Sleep(200);
			cout <<array1[i] << ' ';
		}

		bool g = 0;
		for (int i = 0; i < a; i++) //Цикл у якому перевіряється виграш
		{
			if (array1[i] == '_')
			{
				g++;
			}
		}
		if (g == 0)
		{
			cout << "\n Ви виграли :D \n";
			break;
	    }

		g = 0;
		for (int i = 0; i < a; i++)//частина програми у якій вираховуються очки
		{
			if (array1[i] == b)
			{
				g++;				
			}
		}
		if (g == 0)
		{			
			k--;
			cout << "\n \nТакої букви немає \n";
			cout << "У вас залишилось спроб: " << k;
		}

		if (k == 0)
		{
			cout << "\n Ви програли :( \n";
			break;
			
		}

	}

}

По сути говоря мне нужно из line записать в array[100]



________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE]
(это кнопочка на панели форматирования с решёточкой #)
Не забывайте об этом!

Модератор.

Последний раз редактировалось Serge_Bliznykov; 27.05.2014 в 06:13.
Yborshik вне форума Ответить с цитированием
Старый 27.05.2014, 09:47   #2
casekey
Пользователь
 
Регистрация: 03.11.2010
Сообщений: 95
По умолчанию

смотри документацию по std::string.
У нее определен operator[], а еще функция c_str(). Насколько я понял этого достаточно будет
casekey вне форума Ответить с цитированием
Старый 28.05.2014, 17:09   #3
Yborshik
 
Регистрация: 27.05.2014
Сообщений: 4
По умолчанию

Спасибо за ответ, я до этого много читал но не понимал как это воплотить и вот что получилось все таки:
[CODE]const char * array = line.c_str();[/СODE]
ошибка была всегда в том что я не знал что нужно задавать константное значение и нельзя зарание размерность вводить))
Yborshik вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
char[] to string Shahzod Общие вопросы C/C++ 1 23.12.2013 11:03
Как перевести IP_ADDR_STRING в обычный String или Char calypso Общие вопросы Delphi 0 01.08.2013 11:26
string-char-wchar_t-char-string чето потерял magog7 Общие вопросы C/C++ 0 08.08.2011 20:21
char to string!!! marselik Общие вопросы C/C++ 3 01.06.2010 13:01
String и Char Volt Общие вопросы Delphi 3 17.02.2009 08:30