LINUX.ORG.RU

string c пробелами в char**

 ,


0

2

Имеется стока типа string, в которой лексемы разделены пробелами. Требуется их превратить в переменную argvs типа char *argvs[].

Помогите сделать рабочий код, пока не очень получается:

	string s = "one two";
	stringstream stream( s );
	string lex ;
	
	char **lexs[1024][1024];
        int i = 0;
	while( getline( stream, lex, ' ')) {
	   memset( param[i], lex.c_str(), lex.size() );
	   ++i;
	} 
	



Последнее исправление: hight-technology (всего исправлений: 1)

strncpy() заместо memset() и типы поправить, а то как ссаный студент.

#include <iostream>
#include <string>
#include <cstring>
#include <sstream>
using namespace std;

int main() {
	string s = "one two";
	stringstream stream( s );
	string lex;
	
	char lexs[1024][1024];
        int i = 0;
	while( getline( stream, lex, ' ')) {
	       strncpy( lexs[i], lex.c_str(), lex.size() );
	       ++i;
	} 
	
	for ( i; i > 0; --i ) {
		cout << lexs[i - 1] << endl;
	}
	
	return 0;
}
x0r ★★★★★
()
Последнее исправление: x0r (всего исправлений: 3)

char **lexs[1024][1024];

Массив массивов указателей на указатель char? Сильно.

hippi90 ★★★★★
()
Ответ на: комментарий от zamazan4ik

Ага, конечно,да. Тогда и string и getline тоже быть не должно.

invy ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.