Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
SKDzR
0 / 0 / 1
Регистрация: 10.01.2010
Сообщений: 91
1

Подстрока

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

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

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

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

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

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

Подстрока, заключенная в кавычки
Всем добрый день! Вот такая примерно задачка. Имеется string S1=&quot;This is the long string...

13
neske
1527 / 894 / 192
Регистрация: 26.03.2010
Сообщений: 3,074
15.07.2010, 23:18 2
Первый два символа.. в таком случае нужно вывести на экран первые две ячейки массива command.
0
SKDzR
0 / 0 / 1
Регистрация: 10.01.2010
Сообщений: 91
15.07.2010, 23:23  [ТС] 3
мм, я не правильно задал вопрос... это понятно..
нужно получить два первых символа в переменную char
вот как
0
neske
1527 / 894 / 192
Регистрация: 26.03.2010
Сообщений: 3,074
15.07.2010, 23:25 4
Переменная char может содержать лишь один символ. Может вы имеете в виду указатель типа char?
0
SKDzR
0 / 0 / 1
Регистрация: 10.01.2010
Сообщений: 91
15.07.2010, 23:26  [ТС] 5
Цитата Сообщение от neske Посмотреть сообщение
Переменная char может содержать лишь один символ. Может вы имеете в виду указатель типа char?
да, именно его
0
neske
1527 / 894 / 192
Регистрация: 26.03.2010
Сообщений: 3,074
15.07.2010, 23:45 6
Сидел я, думал. Но ни к чему не пришел.
Так же интересует этот вопрос, будем ждать более опытных пользователей
0
Syndarin
13 / 13 / 2
Регистрация: 15.09.2009
Сообщений: 57
15.07.2010, 23:52 7
А что если получить по очереди первый и второй символ, а затем сконкатенировать их? А результат присвоить указателю?
0
SKDzR
0 / 0 / 1
Регистрация: 10.01.2010
Сообщений: 91
15.07.2010, 23:56  [ТС] 8
примерчик бы...
0
easybudda
Модератор
Эксперт CЭксперт С++
10100 / 6009 / 1507
Регистрация: 25.07.2009
Сообщений: 11,395
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);
}
1
SKDzR
0 / 0 / 1
Регистрация: 10.01.2010
Сообщений: 91
16.07.2010, 00:32  [ТС] 10
можно примерчик substr? это уж как-то больно запутано всё для новичка
0
easybudda
Модератор
Эксперт CЭксперт С++
10100 / 6009 / 1507
Регистрация: 25.07.2009
Сообщений: 11,395
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;
}
0
SKDzR
0 / 0 / 1
Регистрация: 10.01.2010
Сообщений: 91
16.07.2010, 01:11  [ТС] 12
отлично, спасибо, но вот как работать, например, с таким условием:
C++
1
2
3
if ( stricmp ( command, sys_exit ) == NULL ){
        goto exit;
    }
command - наша задаваемая переменная, что к ней дописать нужно?
0
ForEveR
В астрале
Эксперт С++
7996 / 4755 / 651
Регистрация: 24.06.2010
Сообщений: 10,547
Завершенные тесты: 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).
0
SKDzR
0 / 0 / 1
Регистрация: 10.01.2010
Сообщений: 91
16.07.2010, 01:59  [ТС] 14
всё, со всем разобрался, всем спасибо =)
0
16.07.2010, 01:59
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.07.2010, 01:59

Задача: плохая подстрока. Усовершенствовать алгоритм
Задача: Найдите, сколько существует строк заданной длины n, состоящих только из символов 'a',...

Подсчитать, сколько раз встречается подстрока в строке
Вводится строка и подстрока. Подсчитать, сколько раз встречается подстрока в строке.(string)

Определить позицию, с которой подстрока входит в строку
не работает программа, выдает ошибки помогите плз // Лабораторная работа №3 // Массивы // ...


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

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

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