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

Написать и протестировать функцию STR_CMP(str1,str2) - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.67
Nikolai89
0 / 0 / 0
Регистрация: 22.05.2010
Сообщений: 46
24.05.2010, 10:08     Написать и протестировать функцию STR_CMP(str1,str2) #1
добрый день...
очень нужна помощь...


Написать и протестировать функцию STR_CMP(str1,str2), которая сравнивает строки str1 и str2. Функция должна работать для русских букв, возвращать 1, если строки равны и 0 в противном случае.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.05.2010, 10:08     Написать и протестировать функцию STR_CMP(str1,str2)
Посмотрите здесь:

C++ Написать програму которая заменяет все Enter и Tab в строке str1 на сымволи '\n' и '\t' в строке str2.
заменить в строке все вхождения подстроки str1 на подстроку str2 C++
C++ является ли строка str1 подстрокой строки str2
заменить все вхождения подстроки str1 на подстроку str2; строка str1 вводится из файла, а строка str2 с клавиатуры C++
C++ Функцию, которая получает два параметра str1 и str2 типа string и возвращает позицию начала последнего появления str2 в str1
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
M128K145
Эксперт C++
 Аватар для M128K145
8272 / 3491 / 142
Регистрация: 03.07.2009
Сообщений: 10,707
24.05.2010, 10:32     Написать и протестировать функцию STR_CMP(str1,str2) #2
C++
1
2
3
4
5
6
7
int str_cmp(char *first, char *second)
{
    int i = 0;
    while(first[i] != '\0' && second[i] != '\0')
        ++i;
    return (first[i] == '\0' && second[i] == '\0') ? 1 : 0; 
}
Nikolai89
0 / 0 / 0
Регистрация: 22.05.2010
Сообщений: 46
24.05.2010, 18:58  [ТС]     Написать и протестировать функцию STR_CMP(str1,str2) #3
1>Компоновка...
1>MSVCRTD.lib(crtexe.obj) : error LNK2019: ссылка на неразрешенный внешний символ _main в функции ___tmainCRTStartup
1>C:\Users\JeLovers\Documents\Visual Studio 2008\Projects\Лабораторная 4\Debug\Лабораторная 4.exe : fatal error LNK1120: 1 неразрешенных внешних элементов
1>Журнал построения был сохранен в "file://c:\Users\JeLovers\Documents\Visual Studio 2008\Projects\Лабораторная 4\Лабораторная 4\Debug\BuildLog.htm"
1>Лабораторная 4 - ошибок 2, предупреждений 0
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
24.05.2010, 19:01     Написать и протестировать функцию STR_CMP(str1,str2) #4
Дайте код полностью
Nikolai89
0 / 0 / 0
Регистрация: 22.05.2010
Сообщений: 46
24.05.2010, 19:05  [ТС]     Написать и протестировать функцию STR_CMP(str1,str2) #5
C++
1
2
3
4
5
6
7
int str_cmp(char *first, char *second)
{
    int i = 0;
    while(first[i] != '\0' && second[i] != '\0')
        ++i;
    return (first[i] == '\0' && second[i] == '\0') ? 1 : 0;     
}
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
24.05.2010, 19:06     Написать и протестировать функцию STR_CMP(str1,str2) #6
Да не функции, а всей программы... Или вы пытаетесь откомпилировать только функцию??
Nikolai89
0 / 0 / 0
Регистрация: 22.05.2010
Сообщений: 46
24.05.2010, 19:11  [ТС]     Написать и протестировать функцию STR_CMP(str1,str2) #7
помогите дописать программу?????((((
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
24.05.2010, 19:18     Написать и протестировать функцию STR_CMP(str1,str2) #8
Так сразу и писали бы, что вам программа нужна, а не функция))

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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
 
int str_cmp(char *first, char *second)
{
    int i = 0;
    while(first[i] != '\0' && second[i] != '\0')
        ++i;
    return (first[i] == '\0' && second[i] == '\0') ? 1 : 0;     
}
 
int main()
{
    char str1[] = "abc";
    char str2[] = "abc";
    char str3[] = "def";
    int str12;
    int str13;
    
    str12 = str_cmp(str1, str2);
    str13 = str_cmp(str1, str3);
 
    printf("Stroki %s i %s ", str1, str2);
    
    if (str12 == 0)
        printf("ne ");
    
    printf("ravni\n");
 
    printf("Stroki %s i %s ", str1, str3);
    
    if (str13 == 0)
        printf("ne ");
    
    printf("ravni\n");
        
    getch();
    return 0;
}
kazak
 Аватар для kazak
3029 / 2350 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
24.05.2010, 19:21     Написать и протестировать функцию STR_CMP(str1,str2) #9
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
int str_cmp(char *sour, char *dest)
{
   if (strlen(sour) != strlen(dest))
      return 0;
   else
   {
      int i = 0;
      while (sour[i]  != '\0' && dest[i] != '\0')
      {
         if (sour[i] != dest[i]);
            return 0;
         i++;
      }
      return 1;
   }
}
Nikolai89
0 / 0 / 0
Регистрация: 22.05.2010
Сообщений: 46
24.05.2010, 19:26  [ТС]     Написать и протестировать функцию STR_CMP(str1,str2) #10
kazak пожалуйста напиши программу для этой функции??????((((

Добавлено через 47 секунд
silent_1991
строки abc i abc ravni
строки adc i def ravni
во второй строке не вы водит частицу не
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
24.05.2010, 19:28     Написать и протестировать функцию STR_CMP(str1,str2) #11
Я не проверял функцию M128K145, возможно, она не рабочая. Попробуйте так

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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
 
int str_cmp(char *sour, char *dest)
{
   if (strlen(sour) != strlen(dest))
      return 0;
   else
   {
      int i = 0;
      while (sour[i]  != '\0' && dest[i] != '\0')
      {
         if (sour[i] != dest[i]);
            return 0;
         i++;
      }
      return 1;
   }
}
 
int main()
{
    char str1[] = "abc";
    char str2[] = "abc";
    char str3[] = "def";
    int str12;
    int str13;
    
    str12 = str_cmp(str1, str2);
    str13 = str_cmp(str1, str3);
 
    printf("Stroki %s i %s ", str1, str2);
    
    if (str12 == 0)
        printf("ne ");
    
    printf("ravni\n");
 
    printf("Stroki %s i %s ", str1, str3);
    
    if (str13 == 0)
        printf("ne ");
    
    printf("ravni\n");
        
    getch();
    return 0;
}
kazak
 Аватар для kazak
3029 / 2350 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
24.05.2010, 19:31     Написать и протестировать функцию STR_CMP(str1,str2) #12
Цитата Сообщение от kazak Посмотреть сообщение
if (sour[i] != dest[i]);
только точку с запятой уберите в этом if'е. Недоглядел.
Nikolai89
0 / 0 / 0
Регистрация: 22.05.2010
Сообщений: 46
24.05.2010, 19:35  [ТС]     Написать и протестировать функцию STR_CMP(str1,str2) #13
Функция должна работать для русских букв, возвращать 1, если строки равны и 0 в противном случае
kazak
 Аватар для kazak
3029 / 2350 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
24.05.2010, 19:39     Написать и протестировать функцию STR_CMP(str1,str2) #14
Функция и с русскими буквами прекрасно работает.
Nikolai89
0 / 0 / 0
Регистрация: 22.05.2010
Сообщений: 46
24.05.2010, 19:41  [ТС]     Написать и протестировать функцию STR_CMP(str1,str2) #15
а программа какая для этой функции?????(
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
24.05.2010, 19:44     Написать и протестировать функцию STR_CMP(str1,str2) #16
Короче вот рабочий вариант. Функция kazak'а отказалась раюотать почему-то...

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
27
28
29
30
31
32
33
34
35
36
37
38
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
 
int str_cmp(char *str1, char *str2)
{
    int i = 0;
    
    for (i = 0; str1[i] != '\0'; i++)
        if (str1[i] != str2[i])
            return 0;
    
    return 1;
}
 
int main()
{
    char str1[20];
    char str2[20];
    int str12;
    
    printf("Vvedite stroku 1: ");
    gets(str1);
    printf("Vvedite stroku 2: ");
    gets(str2);
    
    str12 = str_cmp(str1, str2);
 
    printf("Vvedennie stroki ");
    
    if (str12 == 0)
        printf("ne ");
    
    printf("ravni\n");
    
    getch();
    return 0;
}
Nikolai89
0 / 0 / 0
Регистрация: 22.05.2010
Сообщений: 46
24.05.2010, 19:49  [ТС]     Написать и протестировать функцию STR_CMP(str1,str2) #17
просто гений и всё работает!!!!
kazak
 Аватар для kazak
3029 / 2350 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
24.05.2010, 19:52     Написать и протестировать функцию STR_CMP(str1,str2) #18
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
27
28
29
30
31
32
33
34
35
36
#include <stdio.h>
#include <string.h>
#include <conio.h>
 
int str_cmp(char *str1, char *str2)
{   if (strlen(str1) != strlen(str2))
      return 0;
   else
   {
      int i = 0;
      while (str1[i]  != '\0' && str2[i] != '\0')
      {
         if (str1[i] != str2[i])
            return 0;
         i++;
      }
      return 1;
   }
}
 
int main()
{
   char str1[80];
   char str2[80];
   printf("Vvedite stroku str1: ");
   scanf ("%s", str1);
   printf("Vvedite stroku str2: ");
   scanf ("%s", str2);
   printf("Stroki %s i %s ", str1, str2);
   if (str_cmp(str1, str2))
      printf("ravny\n");
   else
      printf("ne ravny\n");
   getch();
   return 0;
}
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
24.05.2010, 19:58     Написать и протестировать функцию STR_CMP(str1,str2) #19
kazak,
А, ну, собственно, ваша функция у меня не работала, потому что я дурак))) Забыл убрать точку с запятой в ифе)))
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.05.2010, 22:05     Написать и протестировать функцию STR_CMP(str1,str2)
Еще ссылки по теме:

C++ Исправить ошибку! Ввести две строки, если str1!=str2, то объединить их
C++ Заменить в строке все вхождения подстроки str1 на подстроку str2

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

Или воспользуйтесь поиском по форуму:
M128K145
Эксперт C++
 Аватар для M128K145
8272 / 3491 / 142
Регистрация: 03.07.2009
Сообщений: 10,707
24.05.2010, 22:05     Написать и протестировать функцию STR_CMP(str1,str2) #20
Nikolai89, один вопрос - одна тема
Yandex
Объявления
24.05.2010, 22:05     Написать и протестировать функцию STR_CMP(str1,str2)
Ответ Создать тему
Опции темы

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