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

Удалить в этой строке s последние k элементов - C++

Восстановить пароль Регистрация
 
fishec
 Аватар для fishec
118 / 118 / 30
Регистрация: 07.09.2013
Сообщений: 337
11.09.2013, 15:59     Удалить в этой строке s последние k элементов #1
Eсть строка s и число k. Как удалить в этой строке последние k элементов?
//char *s;
//int k;
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.09.2013, 15:59     Удалить в этой строке s последние k элементов
Посмотрите здесь:

C++ Удалить из файла последние три строки.
Удалить из матрицы те строки, для которых количество ненулевых элементов больше количества нулевых элементов в строке C++
Если в строке есть элемент, равный среднему арифметическому элементов этой строки, то вставьте после него строку, состоящую из этих элементов C++
C++ Если в строке есть элемент, равный среднему арифметическому элементов этой строки, то вставьте после него строку, состоящую из этих элементов
C++ Как удалить последние N элементов из массива типа char?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Raali
572 / 276 / 12
Регистрация: 06.07.2013
Сообщений: 917
Завершенные тесты: 1
11.09.2013, 16:09     Удалить в этой строке s последние k элементов #2
s[ strlen(s) - k ] = '\0'; элементы не удалятся , за то строка будет воспроизводиться резаной на k элементов
GoldenChild
28 / 28 / 4
Регистрация: 12.06.2013
Сообщений: 65
11.09.2013, 16:16     Удалить в этой строке s последние k элементов #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
 
using namespace std;
 
int main() {
    int k = 5;
    char *s = "Hello, world!";
    cout << s << endl;
    char *new_s = new char[];
    for (int i = 0; i < strlen(s) - k; i++) {
        new_s[i] = s[i];
        new_s[i + 1] = '\0';
    }
    cout << new_s << endl;
    system("pause");
    return 0;
}
Raali
572 / 276 / 12
Регистрация: 06.07.2013
Сообщений: 917
Завершенные тесты: 1
11.09.2013, 16:19     Удалить в этой строке s последние k элементов #4
GoldenChild,
тогда уж легче

C++
1
2
3
4
5
6
int k = 5;
char *s = "Hello, world!";
cout << s << endl;
int new_size = strlen(s) - k + 1;
char *new_s = new char[new_size];
memcpy(new_s,s,new_size);
fishec
 Аватар для fishec
118 / 118 / 30
Регистрация: 07.09.2013
Сообщений: 337
11.09.2013, 16:19  [ТС]     Удалить в этой строке s последние k элементов #5
Спасибо!
Yandex
Объявления
11.09.2013, 16:19     Удалить в этой строке s последние k элементов
Ответ Создать тему
Опции темы

Текущее время: 16:49. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru