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

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

Войти
Регистрация
Восстановить пароль
 
daslex
1259 / 504 / 104
Регистрация: 02.08.2011
Сообщений: 2,551
#1

Строки и функции - C++

17.12.2012, 00:34. Просмотров 276. Ответов 2
Метки нет (Все метки)

Вот что я не так делаю? По моей логике есть Первая строка (задана в main). Есть функция, в которой есть Вторая строка.
В первой строке есть символ, который ищется во второй строке и если символ найден, то должен произойти перевод на новую строку. НО перехода не происходит из-за моей какой-то ошибки.
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
#include <iostream>
using namespace std;
 
bool func(char *P,char ch)
{
    char *M="+-*/"; //по этой строке проверяю вхождение символа
 
    for (int i=0;i<strlen(M);i++) //прохожу по всей строке с символами
       if (ch==M[i]) return false; //если входящий ch нашелся в строке с символами, то возвращаю false
       else return true; //иначе true
}
 
int main()
{
    char Str[]="Priv-et"; //тестируемая строка
 
    for (int i=0;i<strlen(Str);i++)  //Прохожу по тест строке
    {
        if (func(Str,Str[i])==true) cout<<"1"; //если функция не встретила символ, то выводит 1
        else cout<<endl; //если встретила, то переход на новую строку
    
    }
    cout<<endl;
 
    return 0;
}
почему так?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.12.2012, 00:34     Строки и функции
Посмотрите здесь:

Символьные строки и функции C++
C++ Функции и строки
Строки и функции C++
C++ Строки. Функции
Строки и функции C++
Символьные строки и функции C++
Задача на строки и функции C++
C++ Строки и функции
C++ Функции, строки и файлы
C++ Возвращение строки из функции
Строки + функции C++
C++ Возврат строки из функции

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
IGPIGP
Комп_Оратор)
6366 / 3013 / 297
Регистрация: 04.12.2011
Сообщений: 8,105
Записей в блоге: 3
17.12.2012, 01:23     Строки и функции #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
using namespace std;
bool func(char ch)
{
    char *M="+-*/"; //по этой строке проверяю вхождение символа
 
    for (unsigned int i=0;i<strlen(M);i++) //прохожу по всей строке с символами
       if ((int)ch==(int)M[i])return false; //если входящий ch нашелся в строке с символами, то возвращаю false
       return true; //иначе true
}
int main()
{
    char Str[]="Priv-et"; //тестируемая строка
 
    for (unsigned int i=0;i<strlen(Str);i++)  //Прохожу по тест строке
    {
        if (func(Str[i])==true) {cout<<"1";} //если функция не встретила символ, то выводит 1
        else {cout<<endl;} //если встретила, то переход на новую строку
    }
 cout <<endl;
system("PAUSE");
return 0;
}
daslex
1259 / 504 / 104
Регистрация: 02.08.2011
Сообщений: 2,551
17.12.2012, 02:06  [ТС]     Строки и функции #3
В моем коде строки 9 и 10
C++
1
2
 if (ch==M[i]) return false; //если входящий ch нашелся в строке с символами, то возвращаю false
       else return true;
Если я убираю else все в порядке. Если ставлю, то работает не так как надо.

Но Почему так?
Я думал, что функция и так и так возвращет true если символ не найден.
Yandex
Объявления
17.12.2012, 02:06     Строки и функции
Ответ Создать тему
Опции темы

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