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

Осуществить поиск в строке первого вхождения указанного символа (Маленькая доработка) - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.70
sergkhit
0 / 0 / 0
Регистрация: 15.09.2012
Сообщений: 21
15.12.2012, 22:56     Осуществить поиск в строке первого вхождения указанного символа (Маленькая доработка) #1
Задание: Осуществить поиск в строке первого вхождения указанного символа.

C++
1
2
3
4
5
6
7
8
9
#include <stdio.h>
#include <string.h>
#include <conio.h>
int main()
{
char *str = "world";
printf("'r' is at position: %d\n", (strchr(str, 'r')-str));
return 0;
}
Нужно сделать,чтоб если не было символа этого - выходило что-то типо "нету"
Зачем мы вычитаем и что в итоге получаем?(порядковый номер не подходит)
Помогите,пожалуйста, ответить хоть на один вопрос
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.12.2012, 22:56     Осуществить поиск в строке первого вхождения указанного символа (Маленькая доработка)
Посмотрите здесь:

Подсчитать, сколько раз в заданной строке встретился указанный символ C++
C++ Поиск в заданной строке последнего вхождения заданного символа
Поиск вхождения символа C++
C++ Поиск в строке первого вхождения указанного символа - ошибки
C++ Осуществить конкатенацию двух файлов за счёт создания третьего файла (Маленькая доработка)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
v.a.l.i.d
 Аватар для v.a.l.i.d
412 / 377 / 10
Регистрация: 21.09.2012
Сообщений: 913
15.12.2012, 23:29     Осуществить поиск в строке первого вхождения указанного символа (Маленькая доработка) #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include "stdafx.h"
#include "iostream"
using namespace std;
 
int _tmain(int argc, _TCHAR* argv[])
{
    char *str = "world";
 
    if (strchr(str, 'r') != NULL)
        cout << "'r' is at position: " << strchr(str, 'r') << endl;
    else
        cout << "No" << endl;
                
    system("pause");            
    return 0;                   
}
sergkhit
0 / 0 / 0
Регистрация: 15.09.2012
Сообщений: 21
16.12.2012, 01:00  [ТС]     Осуществить поиск в строке первого вхождения указанного символа (Маленькая доработка) #3
а можете на си написать?
v.a.l.i.d
 Аватар для v.a.l.i.d
412 / 377 / 10
Регистрация: 21.09.2012
Сообщений: 913
16.12.2012, 10:44     Осуществить поиск в строке первого вхождения указанного символа (Маленькая доработка) #4
Не смогу. Я очень плохо знаю си
ValeryS
Модератор
6377 / 4843 / 442
Регистрация: 14.02.2011
Сообщений: 16,048
16.12.2012, 10:57     Осуществить поиск в строке первого вхождения указанного символа (Маленькая доработка) #5
Цитата Сообщение от sergkhit Посмотреть сообщение
Зачем мы вычитаем и что в итоге получаем?(порядковый номер не подходит)
Смотри
строка str допустим находится по адресу 100
strchr(str, 'r') ишет букву r
Функция strchr() возвращает указатель на местонахождение первого совпадения с символом c в строке s ... а если символ не найден, то возвращают NULL.
нашла дала адрес 102(третья буква в слове "world")
теперь вычитаем из 102 (адрес буквы)-100(адрес начала строки) и получаем позицию буквы 2



Цитата Сообщение от sergkhit Посмотреть сообщение
Нужно сделать,чтоб если не было символа этого - выходило что-то типо "нету"
C
1
2
3
4
if(strchr(str, 'r')==NULL)
  printf("No");
else
  printf("'r' is at position: %d\n", (strchr(str, 'r')-str));
Yandex
Объявления
16.12.2012, 10:57     Осуществить поиск в строке первого вхождения указанного символа (Маленькая доработка)
Ответ Создать тему
Опции темы

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