|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
16.12.2011, 20:11 | #1 |
Новичок
Джуниор
Регистрация: 16.12.2011
Сообщений: 2
|
C++ работа со строками
Дана строка символов, состоящая из произвольного текста, слова разделены пробелами. Разбить исходную строку на две подстроки, причём первая длиной k символов( если на k-ю позицию поподает слово, то его следует отнести ко второй строке) Помогите написать в C++
Вот пробовал писать, но что то с k намудрил, можно написать каким нибудь другим способом PHP код:
|
16.12.2011, 20:37 | #2 |
Старожил
Регистрация: 16.12.2011
Сообщений: 2,329
|
1. Вводим строчку.
2. Получаем значение k 3. Смотрим: если по позиции k не находится пробел (символ ' '), то в цикле бежим обратно до первого попавшегося пробела. 4. Копируем первый кусок [0; k) 5. Копируем второй кусок (k; длина_изначальной_строки] |
18.12.2011, 23:42 | #3 |
Новичок
Джуниор
Регистрация: 16.12.2011
Сообщений: 2
|
Помогите кто-нибудь написать пожалуйста
|
19.12.2011, 12:18 | #4 |
Новичок
Джуниор
Регистрация: 04.12.2009
Сообщений: 1
|
#include <stdio.h>
#include <stdlib.h> int main ( void ) { const int STR_LEN = 100; char *str_base [STR_LEN]; char *str_1 [STR_LEN]; char *str_2 [STR_LEN]; puts ( "Enter string" ); char *result = fputs ( str_base, STR_LEN, stdin ); if ( !result ){ puts ( "Error string\n" ); system ( "pause" ); return 1; }; puts ( "Enter k" ); int k; scanf ( "%i", &k); if ( (k < 0) || (k >= STR_LEN) ){ puts ( "Error index\n" ); system ( "pause" ); return 1; }; if ( str_base[k] != ' ' ){ int old_k = k; for ( int i = k -1, i >= 0, --i ) if ( str_base[i] == ' ' ){ k = i; break; }; if ( k == old_k ) k = 0; }; for ( int i = 0; i < k; ++i) str_1 [i] = str_base [i]; str_1 [k] = '\0'; if ( k == 0 ) t = 0; else t = 1; for ( int i = k + t; i < STR_LEN, ++i ) str_2 [i] = str_base [i]; printf ( "\n\nBase string \"%s\"", srt_base ); printf ( "\nString 1 \"%s\"", str_1 ); printf ( "\nString 2 \"%s\"\n", str_2 ); system ( "pause" ); return 0; } |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Работа со строками в C++ | telogrejka | Помощь студентам | 6 | 27.02.2011 20:32 |
Работа со строками | fen1ksss | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 2 | 30.11.2010 12:42 |
Работа с матрицами (норма матрицы, работа со строками) | Neitrosha | Помощь студентам | 1 | 26.11.2010 20:19 |
работа со строками | DeDoK | Общие вопросы Delphi | 2 | 02.02.2010 23:27 |
Работа со строками (Си) | Geremy | Помощь студентам | 5 | 04.12.2009 21:46 |