2016-11-10 13 views
0

Давайте посмотрим следующий пример:Set Char * Обрезать полукокса в C

char var1[100] = "test "; 
char* var2; 

Если я это сделать:

var2 = &var1; 

Я достану с пробелами.

Я хочу, чтобы var2 был отделки var1.

+0

вы пытались что-нибудь? Я предлагаю 'strchr (var1, '')' как хорошее место для запуска – pm100

+0

'char var1 =" test ";' не является допустимой инициализацией. Вы пытаетесь назначить значение адреса (обычно 4 или 8 байтов) в переменную символа (обычно 1 байт). –

+0

Плохая инициализация справа. Исправленный. – Richasantos

ответ

0

Насколько я знаю, нет никакого способа сделать это, не изменяя исходную строку или не копируя измененную версию этой строки в новый источник.

Как было указано в сообщении pm100, вы можете найти указатель, указывающий на первый экземпляр пространства в этой строке, затем получить расстояние от указателя источника и указатель, чтобы найти индекс пробела. После этого просто используйте strncpy, чтобы скопировать эту часть строки в новый указатель. Удостоверьтесь, что вы назначили новый указатель и положить завершающий символ '\ 0' в конце.

Другое решение - просто использовать strchr снова, как сказал pm100, но на этот раз измените то, что указывает этот указатель на '\ 0'.

0

Quicky

var2 = strdup(var1); 
char * idx = strchr(var2, ' '); 
if(idx) *idx = 0; 

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

  • Нет связанных вопросов^_^