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

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

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

Подстрока - C++

15.07.2010, 23:17. Просмотров 807. Ответов 13
Метки нет (Все метки)

Всем Приветы,
вопрос на сейчас такой:
Как получить подстроку из данной строки, если данная задаётся пользователем?
Вот пример:
C++
1
2
3
4
5
6
7
8
#include <iostream>
using namepace std;
 
int main(){
char command[255];
cin >> command;
// Нужно получить, допустим, первые два символа строки 'command'
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.07.2010, 23:17
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Подстрока (C++):

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

Завершающая подстрока - C++
Есть параметр std:::string Text и локальная переменная i, хранящая индекс символа. Требуется удалить из параметра начальные символы по этот...

Подстрока в пределах от M до N - C++
помогите пож преобразовать в с++,за ранее спасибо Var i,m,n:byte; a,b:string; begin write('Введите слово'); ...

Наибольшая общая подстрока - C++
Люди из раздела &quot;алгоритмы&quot; молчат.. спрошу тут..Прошу прощения за &quot;флуд&quot;. На днях отправил резюме в Яндекс. Откуда мне прислали...

Подстрока, заключенная в кавычки - C++
Всем добрый день! Вот такая примерно задачка. Имеется string S1=&quot;This is the long string having some words \&quot;in quotes\&quot;&quot;; Надо...

Задача: плохая подстрока. Усовершенствовать алгоритм - C++
Задача: Найдите, сколько существует строк заданной длины n, состоящих только из символов 'a', 'b' и &quot;c&quot;, и не содержащих подстроки...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
neske
1482 / 849 / 76
Регистрация: 26.03.2010
Сообщений: 2,917
15.07.2010, 23:18 #2
Первый два символа.. в таком случае нужно вывести на экран первые две ячейки массива command.
SKDzR
0 / 0 / 0
Регистрация: 10.01.2010
Сообщений: 91
15.07.2010, 23:23  [ТС] #3
мм, я не правильно задал вопрос... это понятно..
нужно получить два первых символа в переменную char
вот как
neske
1482 / 849 / 76
Регистрация: 26.03.2010
Сообщений: 2,917
15.07.2010, 23:25 #4
Переменная char может содержать лишь один символ. Может вы имеете в виду указатель типа char?
SKDzR
0 / 0 / 0
Регистрация: 10.01.2010
Сообщений: 91
15.07.2010, 23:26  [ТС] #5
Цитата Сообщение от neske Посмотреть сообщение
Переменная char может содержать лишь один символ. Может вы имеете в виду указатель типа char?
да, именно его
neske
1482 / 849 / 76
Регистрация: 26.03.2010
Сообщений: 2,917
15.07.2010, 23:45 #6
Сидел я, думал. Но ни к чему не пришел.
Так же интересует этот вопрос, будем ждать более опытных пользователей
Syndarin
13 / 13 / 1
Регистрация: 15.09.2009
Сообщений: 57
15.07.2010, 23:52 #7
А что если получить по очереди первый и второй символ, а затем сконкатенировать их? А результат присвоить указателю?
SKDzR
0 / 0 / 0
Регистрация: 10.01.2010
Сообщений: 91
15.07.2010, 23:56  [ТС] #8
примерчик бы...
easybudda
Модератор
Эксперт CЭксперт С++
9530 / 5523 / 932
Регистрация: 25.07.2009
Сообщений: 10,608
16.07.2010, 00:25 #9
Цитата Сообщение от SKDzR Посмотреть сообщение
примерчик бы...
Если на С++ пишете, то там есть класс string с очень полезной функцией substr(), а так вот:
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
25
26
27
28
29
30
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
int main(void){
    char buf[BUFSIZ], * outBuf;
    int numToCopy;
 
    printf("String: ");
    if ( ! fgets(buf, BUFSIZ, stdin) ){
        perror("fgets");
        exit(EXIT_FAILURE);
    }
    printf("Number of characters to copy: ");
    if ( scanf("%d", &numToCopy) != 1 || numToCopy < 1 || numToCopy > strlen(buf) ){
        fprintf(stderr, "Wrong parameter!\n");
        exit(EXIT_FAILURE);
    }
 
    if ( ( outBuf = (char*)malloc(numToCopy + 1) ) == NULL ){
        perror("malloc");
        exit(EXIT_FAILURE);
    }
    strncpy(outBuf, buf, numToCopy);
    outBuf[numToCopy] = '\0'; /* чтобы уж совсем ни о чём плохом не думать */
    printf("Result: %s\n", outBuf);
 
    free(outBuf);
    exit(EXIT_SUCCESS);
}
SKDzR
0 / 0 / 0
Регистрация: 10.01.2010
Сообщений: 91
16.07.2010, 00:32  [ТС] #10
можно примерчик substr? это уж как-то больно запутано всё для новичка
easybudda
Модератор
Эксперт CЭксперт С++
9530 / 5523 / 932
Регистрация: 25.07.2009
Сообщений: 10,608
16.07.2010, 00:41 #11
Цитата Сообщение от SKDzR Посмотреть сообщение
можно примерчик substr?
ага
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <string>
 
int main(){
    std::string buf;
    int charsToCopy;
 
    std::cout << "String: ";
    std::getline(std::cin, buf);
    std::cout << "Number of characters to copy: ";
    std::cin >> charsToCopy;
    if ( charsToCopy < 1 || charsToCopy > buf.size() ){
        std::cerr << "Wrong parameter!" << std::endl;
        return 1;
    }
    std::cout << "Result: " << buf.substr(0, charsToCopy) << std::endl;
 
    return 0;
}
SKDzR
0 / 0 / 0
Регистрация: 10.01.2010
Сообщений: 91
16.07.2010, 01:11  [ТС] #12
отлично, спасибо, но вот как работать, например, с таким условием:
C++
1
2
3
if ( stricmp ( command, sys_exit ) == NULL ){
        goto exit;
    }
command - наша задаваемая переменная, что к ней дописать нужно?
ForEveR
В астрале
Эксперт С++
7970 / 4732 / 321
Регистрация: 24.06.2010
Сообщений: 10,541
Завершенные тесты: 3
16.07.2010, 01:46 #13
SKDzR, Сравнение? Ну сравнить n символов, если на то пошло. То есть:

strnicmp(command, sys_exit, n);

Кстати... У вас таки на Си или на Си++? Если на Си то strnicmp.
Cи++ str.compare: if(buf.compare(0, charsToCopy, subbuf)==0) и далее что надо сделать.
Или же strnicmp(buf.c_str(), subbuf.c_str(), charsToCopy).
SKDzR
0 / 0 / 0
Регистрация: 10.01.2010
Сообщений: 91
16.07.2010, 01:59  [ТС] #14
всё, со всем разобрался, всем спасибо =)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.07.2010, 01:59
Привет! Вот еще темы с ответами:

Посчитать, сколько раз подстрока встречается в строке - C++
здравствуйте всем. хочу посчитать сколько раз подстрока встречается в строке и не получается) помогите пожалуйста)подскажите что не так? ...

Определить позицию, с которой подстрока входит в строку - C++
не работает программа, выдает ошибки помогите плз // Лабораторная работа №3 // Массивы // #include &quot;stdafx.h&quot; #include...

Определить, сколько раз данная подстрока входит в строку - C++
Вводятся подстрока и строка. Определить, сколько раз данная подстрока входит в строку. Наложение строк не учитывать, т.е. в строку aaaa...

Функция определяющая сколько раз в строке встречается заданная подстрока - C++
Напишите функцию Count, которая получает два параметра str1 и str2, типа string и возвращает число, указывающее сколько раз str2...


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

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

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