Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
0 / 0 / 0
Регистрация: 09.07.2011
Сообщений: 19
1

Определить, встретился ли в строке str1 какой-нибудь символ из строки str2

10.07.2011, 15:04. Показов 2176. Ответов 10
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Нужно написать и протестировать функцию STRS(str1, str2), которая определяет, встретился ли в строке str1 какой-нибудь символ из строки str2. на языке СИ. Буду очень благодарен!!!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.07.2011, 15:04
Ответы с готовыми решениями:

Функцию, которая получает два параметра str1 и str2 типа string и возвращает позицию начала последнего появления str2 в str1
Напишите функцию rightposition, которая получает два параметра str1 и str2 типа string и возвращает...

Заменить все вхождения str1 на str2 (str1 вводится из файла, а str2 - с клавиатуры)
заменить все вхождения подстроки str1 на подстроку str2; строка str1 вводится из файла, а строка ...

Функция определяющая наличие символов строки str2 в строке str1
Написать и протестировать функцию STRS(str1, str2), которая определяет, встретился ли в строке str1...

Написать програму которая заменяет все Enter и Tab в строке str1 на сымволи '\n' и '\t' в строке str2.
а если не сложно то можно функцию

10
404 / 360 / 36
Регистрация: 11.10.2010
Сообщений: 1,907
10.07.2011, 15:57 2
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
bool findchar(char *s,char c)
{
    int i=0;
    for (;s[i]!='\0';i++)
        if (s[i]==c) return true;
    return false;
}
bool STRS(char *str1,char *str2)
{
    int i=0;
    for (;str2[i]='\0';i++)
        if (findchar(str1,str2[i])) return true;
    return false;
}
Добавлено через 2 минуты
сорри ошибся надо было писать int а не bool
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
int findchar(char *s,char c)
{
    int i=0;
    for (;s[i]!='\0';i++)
        if (s[i]==c) return 1;
    return 0;
}
int STRS(char *str1,char *str2)
{
    int i=0;
    for (;str2[i]='\0';i++)
        if (findchar(str1,str2[i])) return 1;
    return 0;
}
0
0 / 0 / 0
Регистрация: 09.07.2011
Сообщений: 19
10.07.2011, 16:31  [ТС] 3
При компилировании ошибок не выдает, а вот при запуске выкидывает ошибки:

Linking...
.\Debug\Cpp1.obj : warning LNK4042: object specified more than once; extras ignored
LIBCD.lib(crt0.obj) : error LNK2001: unresolved external symbol _main
Debug/Cpp1.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.

Cpp1.exe - 2 error(s), 1 warning(s)
0
Эксперт С++
1069 / 848 / 60
Регистрация: 30.04.2011
Сообщений: 1,659
10.07.2011, 16:35 4
А где у тебя главная функция?
0
0 / 0 / 0
Регистрация: 09.07.2011
Сообщений: 19
10.07.2011, 16:38  [ТС] 5
Я не могу разобраться. Может возможен другой вариант решения на СИ?
0
Эксперт С++
1069 / 848 / 60
Регистрация: 30.04.2011
Сообщений: 1,659
10.07.2011, 16:42 6
Цитата Сообщение от TambowsWolf Посмотреть сообщение
Я не могу разобраться. Может возможен другой вариант решения на СИ?
1. Открой любую книжку по С++ и посмотри как пишется HelloWorld
2. Правильно создай проект в своей среде. Это должен быть консольный пустой проект
3. Введи весь текст ручками вместе с main()
4. Теперь можно транслировать и запускать.
0
0 / 0 / 0
Регистрация: 09.07.2011
Сообщений: 19
10.07.2011, 16:48  [ТС] 7
Я не знаю строк. А задачу надо завтра уже сдать.
0
Эксперт С++
1069 / 848 / 60
Регистрация: 30.04.2011
Сообщений: 1,659
10.07.2011, 16:53 8
Цитата Сообщение от TambowsWolf Посмотреть сообщение
Я не знаю строк. А задачу надо завтра уже сдать.
Строки здесь абсолютно ни причем! Ты проект неправильно создаешь и функцию main не пишешь - тебе сообщения и выводятся об этом.
0
0 / 0 / 0
Регистрация: 09.07.2011
Сообщений: 19
10.07.2011, 16:59  [ТС] 9
Вожможно так:

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 <stdio.h>          
#include <conio.h>
//значение постоянной
#define K 500
int STRP(char*,char*);
//объявляем главную функцию main()   
void main() 
{
   //объявляем переменные            
   char str1[K],str2[K];        
   int m;
   //вводим певую строку
   puts(" 1st str:");
   gets(str1);  
   //вводим вторую строку         
   puts(" \n2st str:");
   gets(str2);              
   m=STRP(str1,str2);
   if(m!=-1)
   //выводим текстовое сообщение
   printf("\n Simvoly sovpadayut : %d",m);  
      else printf("\n Ne sovpadauyt");
   _getch();
   printf("\n\n");
}
0
404 / 360 / 36
Регистрация: 11.10.2010
Сообщений: 1,907
10.07.2011, 17:04 10
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

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
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int findchar(char *s,char c)
{
    int i=0;
    for (;s[i]!='\0';i++)
        if (s[i]==c) return 1;
    return 0;
}
int STRS(char *str1,char *str2)
{
    int i=0;
    for (;str2[i]='\0';i++)
        if (findchar(str1,str2[i])) return 1;
    return 0;
}
int main()
{
    int res=STRS("Hello World!","lr");
    if (res) printf("Odin simvol ili neskolko simvoli iz stroki str2 est v str1");
    else printf("Simvolov stroki str2 net v str1");
    return 0;
}
0
Эксперт С++
1069 / 848 / 60
Регистрация: 30.04.2011
Сообщений: 1,659
10.07.2011, 17:05 11
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Похоже, что работаешь в Студии?
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
//подключаем библиотеки
#include <stdio.h>          
#include <conio.h>
//значение постоянной
#define K 500
int STRP(char*,char*);
//объявляем главную функцию main()   
int main()            // -- надо так --  
{ setlocale(LC_ALL, "Russian");                  // -- для русского языка --
   //объявляем переменные            
   char str1[K],str2[K];        
   int m;
   //вводим певую строку
   puts(" 1st str:");   gets(str1); 
   //вводим вторую строку         
   puts(" \n2st str:");   gets(str2);               
   m=STRP(str1,str2);
   if(m!=-1)
   //выводим текстовое сообщение
     printf("\n Simvoly sovpadayut : %d",m);  
   else printf("\n Ne sovpadauyt");
   _getch();
   printf("\n\n");
}
А где определение функции STRP() ?
0
10.07.2011, 17:05
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.07.2011, 17:05
Помогаю со студенческими работами здесь

Найти первую подстроку str2 в строке str1
Ввести строки str1 и str2 с клавиатуры.Найти первую подстроку str2 в строке str1.Вывести на экран...

Заменить в строке все вхождения подстроки str1 на подстроку str2
Заменить в строке все вхождения подстроки strl на подстроку str2.

Заменить в строке все вхождения подстроки str1 на подстроку str2
заменить в строке все вхождения подстроки str1 на подстроку str2

Заменить в строке все вхождения подстроки str1 на подстроку str2
заменить в строке все вхождения подстроки str1 на подстроку str2


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru