2017-01-11 3 views
-3

Мне нужна целая строка, чтобы быть одним символом другой строки.Назначить char char *

const char *const_string = "FOOBAR"; 
char *character_string = malloc(1024); 
// character_string = const_string[3]; 

Как я могу использовать последнюю (прокомментированную) линию?

+0

Неясно, какой результат вы хотите получить. –

+0

change int val to char val – eyllanesc

+0

@ VladfromMoscow set 'str' to" s ". –

ответ

3

Кажется, вы имеете в виду следующее

void do_something(char *str, int idx) 
{ 
    str[0] = glob_str[idx]; 
    str[1] = '\0'; 
} 

Вы можете добавить проверку функции, что индекс не находится за строковым литералом, на который указывает glob_str.

+0

Код @Redesign Влада должен работать. Пожалуйста, опубликуйте всю запущенную программу, которая дает вам только пустую строку. – jforberg

+0

К сожалению, неважно. У меня остался кусок кода, который меня путал. –

+0

@Redesign Если ваша проблема решена, пожалуйста, сделайте одно из (1) принять ответ Влада (2) удалить свой вопрос (3) написать какую-то заметку в верхней части вашего вопроса. Это так, что мы знаем, что оно решено, и людям не нужно тратить время на его чтение. – jforberg

0

Учитывая

char *glob_str = "test test"; // glob_str is literal string and cannot be modified 

затем

glob_str[0] = val; // modification won't work 

Вам нужно изменить, чтобы

char glob_str[] = "test test"; 

Смотрите эту question

+0

Ты не ошибаешься, но я не думаю, что это попытка ОП. Я думаю, он хочет установить свой буфер malloc'd только для {glob_str [0], '\ 0', ...} – jforberg

+2

@jforberg действительно Q непонятен – artm

+0

Нет, я согласен. ___ – jforberg

Смежные вопросы