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

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

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

Управление строками - C++

03.01.2012, 01:19. Просмотров 525. Ответов 5
Метки нет (Все метки)

Есть ли функции в библиотеке Си (не Си++) позволяющие перезаписывать содержимое строк или менять положение индикатора позиции наподобии того как это можно делать с потоками? Пока кажеться, что в строки символы можно только добавлять...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.01.2012, 01:19
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Управление строками (C++):

Управление строками - C++
Всем привет! Я изучаю с++ недавно, в как учебное пособие использую "С++ для чайников". Пример перепечатал с книги, а он не работает! ...

Реализовать алгоритм работы планировщика. Управление виртуальной памятью. Управление файловой системой - C++
Разработка программы менеджера памяти. Свопинг. Сегментная схема организации памяти. Управление виртуальной памятью. Глобальное и локальное...

Работа со строками - C++
Вставить после вхождения строки str подстроку str1. Попытался сам сделать, но дальше этого работа не идёт. Нужна помощь. #include...

Работа с строками - C++
Здравствуйте! Есть строка (предложение) надо убрать все пробелы, в т. ч. в начали конце и получить количество слов в этом предложении. ...

Работа со строками - C++
char* stringRes=new char; Почему эта строка работает правильно и не выдает ошибки, хотя переменная length не константа? Почему тут не как...

Работа со строками - C++
Подскажите пожалуйсто!!! Как удалить часть строки не создавая при этом новой строки?

5
-=ЮрА=-
Заблокирован
Автор FAQ
03.01.2012, 10:43 #2
Цитата Сообщение от Morningstar Посмотреть сообщение
Есть ли функции в библиотеке Си (не Си++) позволяющие перезаписывать содержимое строк или менять положение индикатора позиции наподобии того как это можно делать с потоками? Пока кажеться, что в строки символы можно только добавлять...
- предлагаю оттестировать код С ниже
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
 
int main()
{
    char str[256];
    strcpy(str,"This is the test");
    printf("%s\n",str);
    strcpy(&str[7],&str[11]);//Удалим из строки the путём копирования блоков памяти внутри строки
    printf("%s\n",str);
    strcat(str," - can you see difference");//добавим  - can you see difference
    printf("%s\n",str);
    str[4] = '\0';//Обрежим строку оставив в ней всего 4 символа
    printf("%s\n",str);
    system("pause");
    return 0;
}
1
Миниатюры
Управление строками  
Morningstar
0 / 0 / 0
Регистрация: 21.09.2011
Сообщений: 15
05.01.2012, 03:03  [ТС] #3
Тест прошёл. Благодарю за ловкий приём вырезания символа из строки. А можно ли вставить строку посреди другой?
0
-=ЮрА=-
Заблокирован
Автор FAQ
05.01.2012, 14:19 #4
Цитата Сообщение от Morningstar Посмотреть сообщение
ест прошёл. Благодарю за ловкий приём вырезания символа из строки. А можно ли вставить строку посреди другой?
- Конечно!
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
 
int main()
{
    char str[256];
    strcpy(str,"This is the test");
    printf("Input string : %s\n",str);
    strcpy(&str[7],&str[11]);//Удалим из строки the путём копирования блоков памяти внутри строки
    printf("Move 4 chars from pos 7 : %s\n",str);
    //Вставим символ "INSERT" на 7-ую позицию
    long i;
    char ins[]= "INSERT";
    long iLen = strlen(ins);
    long sLen = strlen(str);
    strcpy(&str[7 + iLen],&str[7]);//расширии строку на iLen символов
    for(i = 7; i < 7 + iLen; i++)
        str[i] = ins[i - 7];
    str[sLen + iLen + 1] = '\0';
    printf("Insert X in pos 7 : %s\n",str);
    system("pause");
    return 0;
};
0
Миниатюры
Управление строками  
Morningstar
0 / 0 / 0
Регистрация: 21.09.2011
Сообщений: 15
08.01.2012, 03:18  [ТС] #5
Благодарю! У меня всё.
0
Gepar
1177 / 533 / 20
Регистрация: 01.07.2009
Сообщений: 3,517
08.01.2012, 04:57 #6
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
strcpy(&str[7],&str[11]);
Мне говорили что это опасный шаг и что это может привести к ошибке в памяти, хотя сам правда не раз так делал и к ошибкам не приводило, но вот то что мне сказали запомнилось.
0
08.01.2012, 04:57
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.01.2012, 04:57
Привет! Вот еще темы с ответами:

Работа со строками - C++
ммм, в общем задание такое: Если честно чувствую себя тупым, читая это задание... Препод сказал, что строка вводится без пробелов...

Работа со строками - C++
Написать программу, которая считывает текст и определяет, сколько в нем слов, состоящих не более чем из четырех букв

Задача со строками - C++
Условие: Дана строка текста, в которой слова разделены пробелами. Необходимо: ***************************** - определить количество...

Работа со строками - C++
Есть задание: Код, который давали на лекции int main() { char s = { 0 }; gets_s(s); int len = strlen(s);


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

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