Форум программистов, компьютерный форум CyberForum.ru

string into char [] - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.78
vvApache
5 / 5 / 0
Регистрация: 08.05.2011
Сообщений: 121
02.07.2012, 20:14     string into char [] #1
Как преобразовать
C++
1
string s = "ololo";
в
C++
1
char b[255];
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
02.07.2012, 20:16     string into char [] #2
std::string::c_str()
std::strncpy
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
02.07.2012, 20:17     string into char [] #3
C++
1
strcpy(s.c_str(), b);
vvApache
5 / 5 / 0
Регистрация: 08.05.2011
Сообщений: 121
02.07.2012, 20:18  [ТС]     string into char [] #4
Цитата Сообщение от soon Посмотреть сообщение
мне нужно не в char*, а в char[]

Добавлено через 57 секунд
Цитата Сообщение от ForEveR Посмотреть сообщение
C++
1
strcpy(s.c_str(), b);
выдает
аргумент типа "const char *" несовместим с параметром типа "char *"
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
02.07.2012, 20:21     string into char [] #5
vvApache, крайне интересно, как вы хотите вернуть из динамически расширяющейся строки статический массив символов?

Добавлено через 1 минуту
Цитата Сообщение от vvApache Посмотреть сообщение
аргумент типа "const char *" несовместим с параметром типа "char *"
ForEveR перепутал, первый аргумент принимает указатель на строку, в которую надо скопировать.
vvApache
5 / 5 / 0
Регистрация: 08.05.2011
Сообщений: 121
02.07.2012, 20:29  [ТС]     string into char [] #6
успех
Jupiter
02.07.2012, 20:33
  #7

Не по теме:

удачного вам переполнения

soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
02.07.2012, 20:35     string into char [] #8
Цитата Сообщение от Jupiter Посмотреть сообщение
удачного вам переполнения
Именно поэтому я давал ссылку на strncpy
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
02.07.2012, 20:38     string into char [] #9
Jupiter, Для конкретно данного примера можно использовать strcpy, а так конечно лучше использовать strncpy, а лучше вообще std::string::copy или std::copy.
Aliru777
0 / 0 / 0
Регистрация: 03.11.2011
Сообщений: 71
02.07.2012, 20:48     string into char [] #10
C++
1
2
3
4
5
6
7
string str="ala";
    char b[256]="";
    int a=str.size();
    
    
    strncpy(b,str.c_str(),a);
    cout<<b;
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
02.07.2012, 20:51     string into char [] #11
Цитата Сообщение от Aliru777 Посмотреть сообщение
int a=str.size();
strncpy(b,str.c_str(),a);
Вот теперь точно возможно переполнение.

"точно возможно". Хорошо сказал.
vvApache
5 / 5 / 0
Регистрация: 08.05.2011
Сообщений: 121
03.07.2012, 00:27  [ТС]     string into char [] #12
у меня будут короткие строки) так что переполнения отменяются)
Aliru777
0 / 0 / 0
Регистрация: 03.11.2011
Сообщений: 71
03.07.2012, 04:15     string into char [] #13
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include "stdafx.h"
#include "conio.h"
#include "iostream"
#include "string"
 
using namespace std;
 
int _tmain(int argc, _TCHAR* argv[])
{
    string str="ala";
    char *b=new char[str.size+1];
    strcpy(b,str.c_str());
    cout<<b<<endl;
    getch();
    delete [] b;
    return 0;
}
Так по-моему без переполнения
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
03.07.2012, 05:07     string into char [] #14
Так по-моему без переполнения
Так вообще делать нельзя.
Aliru777
0 / 0 / 0
Регистрация: 03.11.2011
Сообщений: 71
03.07.2012, 12:55     string into char [] #15
Почему?
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
03.07.2012, 13:17     string into char [] #16
Цитата Сообщение от Aliru777 Посмотреть сообщение
Почему?
Хотя бы потому, что std::string::size() - функция.
Вы код не меняли? Вроде еще было статическое объявление массива(собственно, почему я и написал, что так делать нельзя), но я мог и ошибиться с утреца.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.07.2012, 13:22     string into char []
Еще ссылки по теме:

C++ string => char[]
C++ string[] в char[][] или char[]
C++ String в char

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Aliru777
0 / 0 / 0
Регистрация: 03.11.2011
Сообщений: 71
03.07.2012, 13:22     string into char [] #17
Нет,код не менял.
А понял я переписывал вручную str.size()+1
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include "stdafx.h"
#include "conio.h"
#include "iostream"
#include "string"
 
using namespace std;
 
int _tmain(int argc, _TCHAR* argv[])
{
    string str="ala";
    char *b=new char[str.size()+1];
    strcpy(b,str.c_str());
    cout<<b<<endl;
    getch();
    delete [] b;
    return 0;
}
Yandex
Объявления
03.07.2012, 13:22     string into char []
Ответ Создать тему
Опции темы

Текущее время: 02:38. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru