Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.12.2011, 20:11   #1
eclipso
Новичок
Джуниор
 
Регистрация: 16.12.2011
Сообщений: 2
По умолчанию C++ работа со строками

Дана строка символов, состоящая из произвольного текста, слова разделены пробелами. Разбить исходную строку на две подстроки, причём первая длиной k символов( если на k-ю позицию поподает слово, то его следует отнести ко второй строке) Помогите написать в C++
Вот пробовал писать, но что то с k намудрил, можно написать каким нибудь другим способом
PHP код:
#include <iostream.h>
#include <stdio.h>
#include <string.h>

int main()
{
    
char s[100],s1[100],s2[100];
    
cout << "Vvedite stroku: "gets(s);
    
int i,k,z=0;
    
cout << "Vvedite k: "cin >> k;
    
0strcat(s," ");
    
z=k;
    {
        while(
s[z]!=' 'z--;
    }
    for (
i=0i<=zi++)
    {
        
s1[i]=s[i];
        
cout<<s1[i];
    }
    
cout << endl;
    for (
i=z+1i<strlen(s); i++) 
    {
        
s2[i]=s[i];
        
cout << s2[i];
    }
    
cout << endl;
    return 
0;

eclipso вне форума Ответить с цитированием
Старый 16.12.2011, 20:37   #2
_Bers
Старожил
 
Регистрация: 16.12.2011
Сообщений: 2,329
По умолчанию

1. Вводим строчку.
2. Получаем значение k
3. Смотрим: если по позиции k не находится пробел (символ ' '), то в цикле бежим обратно до первого попавшегося пробела.
4. Копируем первый кусок [0; k)
5. Копируем второй кусок (k; длина_изначальной_строки]
_Bers вне форума Ответить с цитированием
Старый 18.12.2011, 23:42   #3
eclipso
Новичок
Джуниор
 
Регистрация: 16.12.2011
Сообщений: 2
По умолчанию

Помогите кто-нибудь написать пожалуйста
eclipso вне форума Ответить с цитированием
Старый 19.12.2011, 12:18   #4
S_A_L
Новичок
Джуниор
 
Регистрация: 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;
}
S_A_L вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа со строками в 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