Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.01.2012, 01:01   #1
tq404
Новичок
Джуниор
 
Регистрация: 16.01.2012
Сообщений: 2
По умолчанию Простой код и магические ошибки?

Приветствую участников форума.
Нуждаюсь я в помощи с проблемой.. В этой сфере я впервые. Сам не разберусь.
Задача такова: программа, которой мы вводим с клавиатуры текст, а она в нем находит например первую букву А и выдает ее порядковый номер.
Ну, собственно, текст вышел таким

Код:
#include <iostream>
#include <string.h>
using namespace std;

int main()
{

cout<<"Vvedite stroku:"<<endl;
char* str;
cin>>str;
char a;
a=strlen(str);
cout<<"\nVvedite kakuyu bukvy iskat': ";
char* s;
cin>>s;
for (int i=0; i < a; i++)
{
if (str[i]==s[0])
{
cout<<"nomer bukvy "<<(i+1);
break;
};
cout<<i<<endl;

};
}
Сначала пробовал в Cygwin. Получил вот такую ошибку
segmentation fault
далее пошел в Code-Blocks
там программа запустилась, но винда ее тут же закрыла, выдав сообщение в духе "программа была закрыта, можете выполнить поиск решений в интернете".
Вот так. Что делать?

Да, и к слову... некоторое время назад на всех компах под вин7 перестала нормально работать вижуал студио 6.0. Ну я это для себя объяснил тем, что, наверное, у винды вышло какое-то обновление. Переустановка вижуала не помогает. Ну да ладно. Пошел в 2008 студию. Попробовал ранее рабочие коды там. Но в 2008 они вдруг оказались полны ошибок и вообще нерабочими(и как это они в 6.0 работали непонятно). Такое число ошибок в заведомо рабочем коде обычно бывает если проект С и С++ перепутать, но у меня всё верно. Расскажите, в чем дело?
tq404 вне форума Ответить с цитированием
Старый 16.01.2012, 12:13   #2
Mandrivnyk
Software Developer
Участник клуба
 
Аватар для Mandrivnyk
 
Регистрация: 01.03.2011
Сообщений: 1,098
По умолчанию

Цитата:
Код:
char a;
a=strlen(str)
Длина строки -- целое число. Зачем тип char?
Цитата:
Код:
cout<<"\nVvedite kakuyu bukvy iskat': ";
char* s;
cin>>s;
Ищем букву. Одну. Зачем указатель на символьный массив?

Короче говоря, надо как-то так:
Код:
#include <iostream>

using namespace std;

int main()
{
    cout<<"Vvedite stroku:"<<endl;
    string str;
    getline(cin, str);
    cout<<"\nVvedite kakuyu bukvy iskat': ";
    char s;
    cin >> s;
    if (str.find_first_of(s) != string::npos)
        cout << "nomer bukvy " << str.find_first_of(s) + 1 << endl;
    else
        cout << "bukva ne najdena" << endl;
}
Или, еще проще:

Код:
#include <iostream>

using namespace std;

int main()
{
    cout<<"Vvedite stroku:"<<endl;
    string str;
    getline(cin, str);
    cout<<"\nVvedite kakuyu bukvy iskat': ";
    char s;
    cin >> s;
    if (str.find_first_of(s) != string::npos)
        cout << "nomer bukvy " << str.find_first_of(s) + 1 << endl;
    else
        cout << "bukva ne najdena" << endl;
}
Болтовня ничего не стоит. Покажите мне код. (c) Linus Torvalds
Помог ответ? -- Поставьте отзыв.
Выражения особой благодарности в рублевом эквиваленте отправлять сюда --> R269634919062
Mandrivnyk вне форума Ответить с цитированием
Старый 17.01.2012, 04:48   #3
tq404
Новичок
Джуниор
 
Регистрация: 16.01.2012
Сообщений: 2
По умолчанию

Mandrivnyk
Страшно благодарю)
tq404 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Магические действа Rabbit-PGN C/C++ Сетевое программирование 0 30.11.2011 21:00
Нужно написать код по простой блок схеме. Cavin Паскаль, Turbo Pascal, PascalABC.NET 4 16.11.2011 18:33
Простой код, а программы нету Ivodzima Visual C++ 13 25.10.2010 18:42
Магические кавычки (magic quotes) Linel PHP 5 12.02.2010 14:21
подкорректирйте простой код N!ckeL PHP 2 04.08.2008 17:09