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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
sobiron236
0 / 0 / 0
Регистрация: 24.11.2012
Сообщений: 6
#1

Изменение списка char - C++

24.11.2012, 20:27. Просмотров 453. Ответов 4
Метки нет (Все метки)

Здравствуйте.
Возникла такая проблема. Необходимо извлеч часть строки, кроме последних символов. Например есть строка char *tmp="123:456:891"
необходимо извлечь и поместить в другую переменую только "123:456".

Как извлечь конец строки понимаю, например вот так:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
int main(void) {
    
        char *first_word;
    first_word="dog:cat:bird:cow";
    char tmp_word[128];
 
    int i;
 
    for(i=strlen(first_word);i>0;i--)
    {
        if(first_word[i]==':') break;
    }
    i++;
    strcpy(tmp_word, &first_word[i]);
    printf("%s \n", tmp_word);
 
return 0;
}
выводит cow. А как передпть в другую переменную все кроме cow?
Заранее спасибо =)
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.11.2012, 20:27
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Изменение списка char (C++):

Изменение формата списка - C++
Нужна помощь в одном вопросе, так как возник кризис идей. Мне дали такое задание: &quot;Задан связанный список сотрудников в алфавитном...

Нахождение и изменение элемента двунаправленного кольцевого списка - C++
помогите дополнить код,что бы можно было найти элемент введенный с клавиатуры и заменить его другим элементом( тоже введенным с...

Напишите программу, присваивающую значения элементов списка указателей на символьные строки в стиле С (тип char* ) элементам вектора строк - C++
Напишите программу, присваивающую значения элементов списка указателей на символьные строки в стиле С (тип char* ) элементам вектора строк...

(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const& - C++
astxx::manager::connection::connection(std::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; const&amp;, unsigned short); ...

Error C2664: sprintf: невозможно преобразовать параметр 1 из 'const char *' в 'char *' - C++
error C2664: sprintf: невозможно преобразовать параметр 1 из 'const char *' в 'char *' void crpost(const statep &amp;struc1) { ...

Ошибка в cannot convert char * to char вроде поправил теперь выводит ересь( - C++
Всем доброго дня! У меня такая проблемка.... написал программу, но сначала она ругалась на Cannot convert char* to char теперь вроде...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
go
Эксперт C++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
24.11.2012, 20:34 #2
sobiron236, strncpy
1
sobiron236
0 / 0 / 0
Регистрация: 24.11.2012
Сообщений: 6
24.11.2012, 20:37  [ТС] #3
Цитата Сообщение от go Посмотреть сообщение
sobiron236, strncpy
Извините. а можно какуй нибудь простой пример? а то я как в тумане.
0
go
Эксперт C++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
24.11.2012, 20:54 #4
C
1
2
3
4
5
6
char *first;
char *end; // указатель на !!!последний!!! нужный нам символ
char buf[BUFSIZ];
 
strncpy(buf, first, end - first + 1); // Но прежде проверте, чтобы размер буфера был на единицу больше, размера исходной строки
buf[end - first + 1] = '\0';
1
sobiron236
0 / 0 / 0
Регистрация: 24.11.2012
Сообщений: 6
24.11.2012, 21:25  [ТС] #5
Дошло, спасибо огромное!!!
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.11.2012, 21:25
Привет! Вот еще темы с ответами:

Ошибка: call of overloaded 'strchr(char&, char)' is ambiguous - C++
Здравствуйте, прога почему-то ругается на функцию strchr, вот кусок кода: #include &lt;stdio.h&gt; #include &lt;iostream&gt; #include...

Сделать преобразование unsigned char в char, а затем типу int - C++
Здраствуйте, есть вопрос: Число представлено двумя полями: типа long для рублей и unsigned char - для копеек. Собственно что мне...

array char* to char* (значения массива указателей в один указатель) - C++
Как сложить(или вывести в формате char*) все значения массива указателей(char *) воедино, то есть сложить строки и назначить результату...

Различное поведение функции которая копирует строки с char* t и char t[] - C++
столкнулся с ситуацией которую не могу объяснить пишем функцию которая копирует одну строку в другую: void strstr(char* t,...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
24.11.2012, 21:25
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru