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

Интересный вопрос по строкам - C++

Восстановить пароль Регистрация
 
РагнаР
0 / 0 / 0
Регистрация: 21.10.2010
Сообщений: 27
27.11.2010, 01:04     Интересный вопрос по строкам #1
У нас есть строка типа чар. С помощью функции strtok в строке найдено минимальное слово. Как определить позицию этого слова, то есть с какого символа по номеру это слово начинается? Если использовать функцию strstr то она выделит подстроку, которая может быть частью другого слова.К примеру, в строке " Сонный он шел" strstr(str,"он") даст указатель на второй символ, а необходим указатель на 8 символ.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.11.2010, 01:04     Интересный вопрос по строкам
Посмотрите здесь:

Задача по строкам в С C++
Вопрос по строкам (string) C++
Интересный поиск)) Помощь безумно нужна C++
вопрос по строкам C++
C++ Вопрос по строкам
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
x1Mike7x
 Аватар для x1Mike7x
214 / 127 / 6
Регистрация: 06.11.2010
Сообщений: 234
27.11.2010, 01:14     Интересный вопрос по строкам #2
C
1
strstr(str," он ")
А если так? И потом к полученному номеру (который будет указывать на пробел перед словом) прибавляем 1.
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
27.11.2010, 01:41     Интересный вопрос по строкам #3
РагнаР, Можно счетчик завести. Потом в исходной строке проверять посимвольно - если разделитель - плюсуем другой счетчик. Так до тех пор пока не дойдем до начала нужного слова.
Соотственно каждый шаг сравнивать первый и второй счетчики. Ну как-то так.
accept
4838 / 3237 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
27.11.2010, 04:32     Интересный вопрос по строкам #4
Цитата Сообщение от РагнаР
Как определить позицию этого слова, то есть с какого символа по номеру это слово начинается?
C
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <stdio.h>
#include <string.h>
 
int main(void)
{
    char s[100] = "ab c", *p;
    
    p = strtok(s, " ");
    p = strtok(NULL, " ");
    printf("%d" "\n", p - s);    
    
    return 0;
}
Yandex
Объявления
27.11.2010, 04:32     Интересный вопрос по строкам
Ответ Создать тему
Опции темы

Текущее время: 04:41. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru