Во-первых, подумайте, следует ли вам использовать cstrings. В C ++ обычно используют строку.
Однако, если вы хотите использовать cstrings, конкатенация "abc" "123"
-> "abc123"
является операцией препроцессора и поэтому не может использоваться с string :: c_str (). Вместо этого самый простой способ - создать новую строку и взять .c_str () этого:
string s="abcdefghijklmnopqrstuvwxyz"
char f[]= (string(" ") + s.substr(s.length()-10,9) + " ").c_str();
(РЕДАКТИРОВАТЬ: Вы знаете, что, на второй взгляд, это действительно плохая идея. Cstring должен быть освобожден после окончания этого оператора, так что использование f может привести к segfault. готов связываться с strcpy и всем этим безобразным. Серьезно.)
Если вы хотите вместо этого использовать строки, рассмотрите что-то вроде следующего:
#include <sstream>
...
string s="abcdefghijklmnopqrstuvwxyz"
stringstream tmp;
tmp << " " << s.substr(s.length()-10,9) << " ";
string f = tmp.str();