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

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

Войти
Регистрация
Восстановить пароль
 
Shokoladnaj
2 / 2 / 1
Регистрация: 11.03.2014
Сообщений: 84
#1

Ввести 2 слова через пробел, сравнить их на эквивалентность - C++

11.03.2014, 22:35. Просмотров 315. Ответов 4
Метки нет (Все метки)

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
#include "stdio.h"
#include "iostream"
#include "stdlib.h"
#include "conio.h"
using namespace std;
 
int main()
{
    char res[100];
    char a[100];
    char b[100];
    cout<<"Enter to string please:"<<endl;
    cin.getline(res,100,'\n');
    for(int i=0; i<=strlen(res); i++)
    {
        if(res[i]!=' ') a[i]=res[i];
        else break;
    }
    for(int i=strlen(res); i>0; i--)
    {
        if(res[i]!=' ') b[i]=res[i];
        else break;
    }
    cout<<strcmp(a,b);
    
system("pause");
}
Ввести 2 слова через пробел, сравнить их на эквивалентность. Переписываю до пробела в 1 массива, после во второй, strcmp выдаёт -1 всегда, подскажите пожалуйста в чём проблема, и можно ли сделать это задание как нибудь с 1 исходным массивом, не переписываю слова?

Добавлено через 1 минуту
возможно из-за того что забивает символами мммммммммммммммммммммммммммммммммммммммммммммммммммммм, не работает, но когда делаю a[strlen(a)]='\0', b[strlen(b)]='\0' - вылетает из программы

Добавлено через 19 минут
Попробовала не разделяя на 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
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#include "stdio.h"
#include "iostream"
#include "stdlib.h"
#include "conio.h"
using namespace std;
 
int main()
{
    char res[100];
    char a[100];
    char b[100];
    cout<<"Enter to string please:"<<endl;
    cin.getline(res,100,'\n');
    int h=0, ii=0, j=0, k=0;
    for(int i=0; i<strlen(res); i++)
    {
        if(res[i]==' ') break;
        h++;
        for(int j=0; j<=strlen(res); j++)
        {
 
        }
        for(int k=strlen(res); k>=0; k--)
        {
 
        }
        if(res[j]==res[k]) ii++;
    }
    int c=0;
    if(ii==h) c=1;
    cout<<c;
    //// сверху попробовала не разделяя на 2 массива
    for(int i=0; i<=strlen(res); i++)
    {
        if(res[i]!=' ') a[i]=res[i];
        else break;
    }
    for(int i=strlen(res); i>0; i--)
    {
        if(res[i]!=' ') b[i]=res[i];
        else break;
    }
    cout<<strcmp(a,b);
    
system("pause");
}
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.03.2014, 22:35     Ввести 2 слова через пробел, сравнить их на эквивалентность
Посмотрите здесь:

Считать 2 слова из файла через пробел и сравнить их со словом No или Yes - C++
В файле input.txt записаны два слова через пробел. &quot;Yes&quot; и &quot;No&quot;. Нужно считать их из этого файла, затем если s1, первое слово &quot;Yes&quot;, и...

Отредактировать строку, продублировав через один пробел слова, из которых можно составить слова-палиндромы - C++
Отредактировать строку, продублировав через один пробел слова, из которых можно составить слова-палиндромы четной длины. (Помогите,...

В строку через пробел вводятся слова. Отсортировать введенные слова по алфавиту. Результат вывести в виде столбца. - C++
В строку через пробел вводятся слова. Отсортировать введенные слова по алфавиту. Результат вывести в виде столбца.

Ввести с клавиатуры целое положительное число. Напечатать его цифры через пробел в прямом порядке - C++
Ввести с клавиатуры целое положительное число. Напечатать его цифры через пробел в прямом порядке как и через какие операторы можео...

Работа со строками (Не считывает 2 слова через пробел) - C++
Понимаю, что вопрос очень простой, но сам ответа на него найти не могу уже не первый раз. есть код Book mybook; for (int i(0); i...

Как записать построчно слова через пробел в текстовый файл? - C++
В каждую строку вводит только по одному слову, весь нет обрыл не могу найти. Дан какой либо текст, и надо его записать в n строк с каким то...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
saden
183 / 167 / 41
Регистрация: 27.01.2013
Сообщений: 788
11.03.2014, 22:43     Ввести 2 слова через пробел, сравнить их на эквивалентность #2
кажется, первое слово не заканчивается \0.
цикл прерывается по "пробелу", а \0 не дописывается
Shokoladnaj
2 / 2 / 1
Регистрация: 11.03.2014
Сообщений: 84
11.03.2014, 23:59  [ТС]     Ввести 2 слова через пробел, сравнить их на эквивалентность #3
так а надо как сделать, чтобы программа корректно работала?
saden
183 / 167 / 41
Регистрация: 27.01.2013
Сообщений: 788
12.03.2014, 08:46     Ввести 2 слова через пробел, сравнить их на эквивалентность #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
i=j=k=0;
L=strlen(res);
while(res[i]!=' ' && i<L) {a[i]=res[i];i++;}
a[i]='\0';i++;
if(i>L/2) cout<<"first word longer";
else
{
  while(res[i]!=' ' && i<L) {b[k]=res[i];i++;k++;}
  b[k]='\0';
 
  cout<<strcmp(a,b);
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.03.2014, 11:55     Ввести 2 слова через пробел, сравнить их на эквивалентность
Еще ссылки по теме:

Используя заданные разделители продублировать слова-палиндромы через один пробел - C++
Помогите исправить ошибки, программа должна отредактировать строку, продублировав слова-палиндромы через один пробел, используя...

В исходной строке, содержащей перечисленные через пробел слова, найти целые положительные числа и составить из них новую строку - C++
Задание: В исходной строке, содержащей перечисленные через пробел слова, найти целые положительные числа и составить из них новую...

Ввести строку и слово. Вывести те слова, которые не содержат букв, входящих в слово (через <stdio.h>) - C++
Помогите плз...лучше с пояснениями

Даны два слова, в каждом из которых от 1 до 8 строчных латинских букв и за каждым из которых - пробел. Напечатать слова в алфавитном порядке - C++
Даны два различных слова, в каждом из которых от 1 до 8 строчных латинских букв и за каждым из которых - пробел. Напечатать эти слова в...

Ввести строку и два слова, заменить все вхождения первого слова на второе - C++
Возможно ли создание такой программы: Ввести строку и два слова, заменить все вхождения первого слова на второе.

Ввести строку. Выдать все слова, которые имеют длину больше, чем длина последнего слова строки - C++
ввести строку. на печать, выдать все слова, которые имеют длину больше, чем длина последнего слова строки.


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

Или воспользуйтесь поиском по форуму:
Shokoladnaj
2 / 2 / 1
Регистрация: 11.03.2014
Сообщений: 84
12.03.2014, 11:55  [ТС]     Ввести 2 слова через пробел, сравнить их на эквивалентность #5
Сообщение было отмечено автором темы, экспертом или модератором как ответ
не работает это, ввожу qwer qwer пишет first world longer.

Добавлено через 4 минуты
saden, работает только с двумя пробелами

Добавлено через 2 минуты
Не, не работает всё-таки, ввожу qwer zxcv-выводит 1

Добавлено через 32 минуты
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
#include "stdio.h"
#include "iostream"
#include "stdlib.h"
#include "conio.h"
using namespace std;
 
int main()
{
    char res[100];
    char a[100];
    char b[100];
    cout<<"Enter to string please:"<<endl;
    cin.getline(res,100,'\n');
    int i=0; int l=strlen(res);
    for(; i<=strlen(res); i++)
    {
        if(res[i]!=' ') a[i]=res[i];
        else break;
    }
    a[i]='\0';
    i++;
    int k=0;
    for(; i<l; i++)
    {
        if(res[i]!=' ') {b[k]=res[i]; k++;}
        else  break;
    }
    b[k]='\0';
    int t=0, h=0;
    cout<<a<<endl<<b;
    int r=strlen(a);
    int rr=strlen(b);
    int rrr=0;
    if(r/rr==0) cout<<"Two word longer";
    if(rr/r==0) cout<<"First longer";
    if(r/rr!=0 && rr/r!=0)
    {
    for(int i=0; i<=strlen(a); i++)
    {
        h++;
        if(a[i]==b[i]) t++;
    }
    if(t==h) cout<<"True";
    }   
system("pause");
}
Сделала, тему можно закрывать )
Yandex
Объявления
12.03.2014, 11:55     Ввести 2 слова через пробел, сравнить их на эквивалентность
Ответ Создать тему
Опции темы

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